Size: a a a

2021 March 02

[

[BRM]White Rabbit in Haskell
Чёт меня налюбили. В стак не завезли туторы, там голая шаблонная аппа с одним тестом и одним гет-запросом😐
источник

[

[BRM]White Rabbit in Haskell
type это прям совсем в тупую определение алиаса для других типов, да?
источник

AP

Artem Pelenitsyn in Haskell
[BRM]White Rabbit
type это прям совсем в тупую определение алиаса для других типов, да?
Да
источник

к

кана in Haskell
[BRM]White Rabbit
type это прям совсем в тупую определение алиаса для других типов, да?
такой тип тоже валиден

type Point = forall a. Num a => (a, a)
источник

к

кана in Haskell
просто это тип функции
источник

к

кана in Haskell
значение типа Point должна быть пара из двух значений любого типа, для которого есть Num

пара из двух интов не подойдет например, потому что тут тип конкретный
источник

[

[BRM]White Rabbit in Haskell
кана
такой тип тоже валиден

type Point = forall a. Num a => (a, a)
источник

к

кана in Haskell
ну там же написано все
источник

к

кана in Haskell
Perhaps you intended to use RankNTypes
источник

[

[BRM]White Rabbit in Haskell
А, ну, да
источник

[

[BRM]White Rabbit in Haskell
просто мне так непривычно, что хлс может в автоисправления. Он у меня 99% времени, если я хочу открыть тулбар подсказок, уходит в вечную загрузку
источник

к

кана in Haskell
но такой тип практически всегда бессмысленен, это скорее всего не то что ты думаешь
источник

[

[BRM]White Rabbit in Haskell
это алиас для кортежа, единственная функция которого - занеймить дескрипцию принимаемых значений, чтоб вызывающему коду было понятнее, чё он вообще туда кидает.
В сиподобных яп принимаемые значения функции имеют тип + название int getX((int, int) point), тут такого нет, поэтому для дескрипции типов-примитивов надо использовать алиасы.
источник

[

[BRM]White Rabbit in Haskell
Если я не прав, поправь меня.
источник

AP

Artem Pelenitsyn in Haskell
[BRM]White Rabbit
это алиас для кортежа, единственная функция которого - занеймить дескрипцию принимаемых значений, чтоб вызывающему коду было понятнее, чё он вообще туда кидает.
В сиподобных яп принимаемые значения функции имеют тип + название int getX((int, int) point), тут такого нет, поэтому для дескрипции типов-примитивов надо использовать алиасы.
Скорей всего, вам надо просто

type Point a = (a,a)
getX :: Point a -> a
distanceToOrigin :: Num a => Point a -> a

То есть добавлять контекст Num a где он действительно необходим
источник

[

[BRM]White Rabbit in Haskell
Зачем мне кортеж из строки и були под именем "точка"?
источник

к

кана in Haskell
а где тут кортеж из строчки и були?
источник

AP

Artem Pelenitsyn in Haskell
[BRM]White Rabbit
Зачем мне кортеж из строки и були под именем "точка"?
Из строки и були не получится, потому что а один
источник

[

[BRM]White Rabbit in Haskell
Artem Pelenitsyn
Из строки и були не получится, потому что а один
Ну, да, но из двух булей тогда?
источник

к

кана in Haskell
так он тоже не вйыдет
источник