Size: a a a

2021 May 14

IO

I O in Haskell
Типа infixl (-1) <space>? Ну тогда да, хотя лично я никогда так о пробеле не думаю
источник

DB

Danil Berestov in Haskell
Ну это как говорить что и пробел это тоже магический оператор.
источник

DB

Danil Berestov in Haskell
я так понимаю, что @ это тоже самое что и { } в идрисе
источник

IO

I O in Haskell
Ну у него хотя бы примерная сигнатура есть,

infixl (-1) <space>
(<space>) :: forall p q (a :: TYPE p) (b :: TYPE q) . (a -> b) -> a -> b

Все равно конечно магический, слишком левити полиморфный для настоящего, специальные правила для RankNTypes, но хотя бы тип примерно понятен.
источник

IO

I O in Haskell
На мой взгляд пробел мог бы теоретически быть примопом, а вот @ специальный синтаксис
источник

JS

Jerzy Syrowiecki in Haskell
вроде нет. в Идрисе это любой полуявный параметр, а в Хаскеле именно forall-параметр
источник

DB

Danil Berestov in Haskell
ну все forall параметры они полуявные. ясно, что в идрисе он более общий
источник

X

XÆA-XII in Haskell
Что за forall?
источник

YS

Yan Shkurinskiy in Haskell
квантор всеобщности/экзистенциальности
источник

JS

Jerzy Syrowiecki in Haskell
параметры-типы и параметры типов так задаются
источник

YS

Yan Shkurinskiy in Haskell
ща скорее всего меня поправят)
источник

X

XÆA-XII in Haskell
Типа, forall a => a -> a -> a
Это a -> b -> c?
источник

YS

Yan Shkurinskiy in Haskell
не
источник

DB

Danil Berestov in Haskell
нет, forall a. a -> a -> a это a -> a -> a
источник

X

XÆA-XII in Haskell
Зачем тогда он?
источник

JS

Jerzy Syrowiecki in Haskell
потому что надо переменную откуда-то взять
источник

DB

Danil Berestov in Haskell
в случае с a -> a -> a, просто чтобы объявить, что а будет дальше использован
источник

JS

Jerzy Syrowiecki in Haskell
второе — это сахар над первым
источник

D

Dreamerinnoise in Haskell
runST :: (forall s. ST s a) -> a
для таких вот вещей, например
источник

DB

Danil Berestov in Haskell
так точно
источник