Size: a a a

2020 October 08

ХГ

Хаскелль Моисеевич Г... in haskell_blah
applyOptional :: Optional (a -> b) -> Optional a -> Optional b
applyOptional f a = bindOptional (\f' -> mapOptional f' a) f

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

ХГ

Хаскелль Моисеевич Г... in haskell_blah
Я могу вторым способом, я про него читал и понимаю, что он делает.
источник

к

кана in haskell_blah
Хаскелль Моисеевич Гопник
applyOptional :: Optional (a -> b) -> Optional a -> Optional b
applyOptional f a = bindOptional (\f' -> mapOptional f' a) f

applyOptional' :: Optional (a -> b) -> Optional a -> Optional b
applyOptional' _ Empty = Empty
applyOptional' (Full f) (Full x) = Full (f x)
это кстати неверная функция, apply Empty (Full x) у тебя упадет
источник

ХГ

Хаскелль Моисеевич Г... in haskell_blah
Согласен.
источник

ХГ

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

к

кана in haskell_blah
applyOptional' (Full f) (Full x) = Full (f x)
applyOptional' _ _ = Empty
источник

к

кана in haskell_blah
все случаи кроме Full-Full нам не интересны, это всегда Empty
источник

ХГ

Хаскелль Моисеевич Г... in haskell_blah
Хорошо. Но откуда лямбда?.. Таки наверное я не понимаю больше, чем мне кажется. В старте спросил 10 раз и тут, но собеседники уходят от ответа.
источник

ХГ

Хаскелль Моисеевич Г... in haskell_blah
Это или какой-то трюизм, или я плохо формулирую вопрос.
источник

к

кана in haskell_blah
лямбда вытекает из бинда

bindOptional :: Optional a -> (a -> Optional b) -> Optional b

у тебя второй аргумент - какое-то продолжение работы со значением типа a, если оно есть
источник

к

кана in haskell_blah
та самая лямбда
источник

к

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

к

кана in haskell_blah
предоставлялась ли нужная информация в книге - я не знаю
источник

к

кана in haskell_blah
объяснять монады новичкам это дело вообще неблагодарное, и я не думаю что есть книга, где все идеально объяснено для новичков
источник

ХГ

Хаскелль Моисеевич Г... in haskell_blah
Мне кажется, что у вас есть замысел подтолкнуть меня к какому-то выводу или пониманию. Вы могли бы не подталкивать, а сказать прямо?..
источник

к

кана in haskell_blah
интуиция за монадами это часто действительно обычно переосмысление от последующих знаний
источник

к

кана in haskell_blah
Хаскелль Моисеевич Гопник
Мне кажется, что у вас есть замысел подтолкнуть меня к какому-то выводу или пониманию. Вы могли бы не подталкивать, а сказать прямо?..
да я прямо в лоб сказал вроде:

понимая что такое бинд и для чего он нужен, вопроса про "откуда взялась лямбда" не возникало бы, потому что она подразумевается этой функцией

давала ли книга нужное понимание я не знаю
источник

A

Andrey in haskell_blah
лямбда как ещё не примененная функция a -> Optional b к результату Optional a (в случае если там `a`), про который ты ещё не знаешь, есть он там или нет.
источник

к

кана in haskell_blah
я в целом книг по хаскелю ни одной не прочитал, и когда читал слона в школе в первый раз, ничего не понимал, застревал на одном из первых примерах с картами и адт
источник

A

Andrey in haskell_blah
(я старт не читал и поэтому врываюсь просто так)
источник