Size: a a a

cxx.Дискуссионная

2020 May 24

CC

Chris Calvin in cxx.Дискуссионная
Ofee
Не видел ещё ни одного понятного объяснения монад на пальцах, а сколько этому статей посвящено от функциональщиков разного уровня... Думаю, тут дело в том, что не всё, в конце концов, можно объяснить на пальцах, иногда лучше формальное объяснение почитать
Даешь определению функтору, на его базе аппликативному функтору, на базе аппликативного функтора даешь определения монады
источник

CC

Chris Calvin in cxx.Дискуссионная
Без вот этих: Монада это моноид в категории эндофункторов
источник

CC

Chris Calvin in cxx.Дискуссионная
Chris Calvin
Даешь определению функтору, на его базе аппликативному функтору, на базе аппликативного функтора даешь определения монады
Для уровня прикладного разработчика это - обьект, у которого есть набор методов, семантика которых подчиняется определенному перечню законов
источник

CC

Chris Calvin in cxx.Дискуссионная
map, flatMap etc
источник

CC

Chris Calvin in cxx.Дискуссионная
Я их наизусть не помню, так как давно руками не прописывал все это дело
источник

CC

Chris Calvin in cxx.Дискуссионная
источник

O

Ofee in cxx.Дискуссионная
Chris Calvin
Даешь определению функтору, на его базе аппликативному функтору, на базе аппликативного функтора даешь определения монады
Вот только это далеко не на пальцах...
источник

CC

Chris Calvin in cxx.Дискуссионная
Ofee
Вот только это далеко не на пальцах...
https://www.youtube.com/watch?v=Dsd4pc99FSY
Набор видео где человек с точки зрения девелопмента показывает что это за набор обьектов
источник

CC

Chris Calvin in cxx.Дискуссионная
Проще == теряя формальность
источник

CC

Chris Calvin in cxx.Дискуссионная
Не путаю
источник

O

Ofee in cxx.Дискуссионная
Chris Calvin
https://www.youtube.com/watch?v=Dsd4pc99FSY
Набор видео где человек с точки зрения девелопмента показывает что это за набор обьектов
Мне оказалось проще всего, наконец, хотя бы немного, вникнуть в синтаксис Хаскеля и не понадобились как-то ни объяснения на пальцах, ни корявые аналогии...
источник

CC

Chris Calvin in cxx.Дискуссионная
Монада - обьект у которого есть методы map, flatMap, pure, семантика которых ограничена набором правил которые называются законами
Монада - моноид в категори эндофункторов

Это 2 альтернативных определения, которые формулируются с двух разных точек зрения и направлены на разную целевую аудиторию
источник

CC

Chris Calvin in cxx.Дискуссионная
Вот с точки зрения девелопмента, имхо первое определение предпочтительней, ведь оно понятно большинству разработчиков, второе требует от человека понимания математических концепций которые лежат в основе всех этих монад
источник

CC

Chris Calvin in cxx.Дискуссионная
При разработке оно не нужно чаще всего
источник

/dev/urandon ¯\_(ツ)_... in cxx.Дискуссионная
Chris Calvin
Для уровня прикладного разработчика это - обьект, у которого есть набор методов, семантика которых подчиняется определенному перечню законов
+ сахар для operator>>=
источник

CC

Chris Calvin in cxx.Дискуссионная
/dev/urandon ¯\_(ツ)_/¯
+ сахар для operator>>=
Ну всякие fish operator и прочие радости жизни это уже наворачивания поверх базовых концептов
источник

CC

Chris Calvin in cxx.Дискуссионная
Которые не очень сложны в понимании, если стоит цель использовать их как строительные блоки при разработке, а не запариваться по теории категорий в теоретических изысканиях
источник

/dev/urandon ¯\_(ツ)_... in cxx.Дискуссионная
Chris Calvin
Монада - обьект у которого есть методы map, flatMap, pure, семантика которых ограничена набором правил которые называются законами
Монада - моноид в категори эндофункторов

Это 2 альтернативных определения, которые формулируются с двух разных точек зрения и направлены на разную целевую аудиторию
join ещё, самое важное пропустил
источник

CC

Chris Calvin in cxx.Дискуссионная
/dev/urandon ¯\_(ツ)_/¯
join ещё, самое важное пропустил
Йес, еще джоин
источник

CC

Chris Calvin in cxx.Дискуссионная
Я полного перечня не помню, да и джоин не юзаю практически
источник