Size: a a a

2020 October 09

AT

Alexander T in haskell_blah
а applyOptional’ Empty (Full x) как должно работать?
источник

ХГ

Хаскелль Моисеевич Г... in haskell_blah
applyOptional' :: Optional (a -> b) -> Optional a -> Optional b
applyOptional' (Full f) (Full x) = Full (f x)
applyOptional' _ _ = Empty
источник

ХГ

Хаскелль Моисеевич Г... in haskell_blah
Сорри. скопипастил не оттуда.
источник

JC

John Cantrell in haskell_blah
Leonid 🦇 Onokhov
Полный чат самовлюблённых ублюдков
Опять завидуешь тощим красавцам
источник

ХГ

Хаскелль Моисеевич Г... in haskell_blah
Ладно, пробую ещё раз. У меня есть функция (a->b). Есть тип Optional a. Мне надо построить функцию, которая будет работать с Optional (a->b). Я могу сделать так:

applyOptional' :: Optional (a -> b) -> Optional a -> Optional b
applyOptional' (Full f) (Full x) = Full (f x)
applyOptional' _ _ = Empty
источник

ХГ

Хаскелль Моисеевич Г... in haskell_blah
Об этом написано в учебниках. А откуда берётся такое решение:

applyOptional :: Optional (a -> b) -> Optional a -> Optional b
applyOptional f a = bindOptional (\f' -> mapOptional f' a) f
источник

ХГ

Хаскелль Моисеевич Г... in haskell_blah
Это у меня тоже уже есть.

bindOptional :: (a -> Optional b) -> Optional a -> Optional b
bindOptional _ Empty = Empty
bindOptional f (Full x) = f x
источник

AT

Alexander T in haskell_blah
applyOptional от bindOptional отличается первым аргументом. вместо (a -> Optional b) там Optional (a -> b).
Следовательно, applyOptional это bindOptional с трансформацией функции (a -> Optional b) в Optional (a -> b), а это mapOptional. все ж логично, и как раз не “последующее знание”, о котором вы жалуетесь постоянно, а ровно то, что было показано до этого.
источник

ХГ

Хаскелль Моисеевич Г... in haskell_blah
Следовательно, applyOptional это bindOptional с трансформацией функции (a -> Optional b) в Optional (a -> b), а это mapOptional

Вот это разверните чуть подробнее...
источник

ХГ

Хаскелль Моисеевич Г... in haskell_blah
То, что по сигнатурам похожи —  я вижу.
источник

D

Dreamerinnoise in haskell_blah
источник

AT

Alexander T in haskell_blah
чтоб applyOptional выразить через bindOptional нужно первый аргумент преобразовать из переданного Optional (a -> b) в a-> Optional b
источник

ХГ

Хаскелль Моисеевич Г... in haskell_blah
То есть надо построить функцию, у которой будет сигнатура
Optional (a -> b) -> (a-> Optional b)
источник

LO

Leonid 🦇 Onokhov in haskell_blah
John Cantrell
Опять завидуешь тощим красавцам
Я уже вешу как до женитьбы
источник

DF

Dollar Føølish in haskell_blah
Фигаро?
источник

LO

Leonid 🦇 Onokhov in haskell_blah
Своей
источник

DF

Dollar Føølish in haskell_blah
Кек
источник

DF

Dollar Føølish in haskell_blah
А я думал Бальзаминова
источник

LO

Leonid 🦇 Onokhov in haskell_blah
Как до центнера скину буду шеймить жиробасов
источник

DF

Dollar Føølish in haskell_blah
А расскажите про женитьбу
источник