The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Индекс форумов
Составление сообщения

Исходное сообщение
"Релиз компилятора Rakudo 2022.02 для языка программирования ..."
Отправлено Аноним, 16-Фев-22 23:00 
> Я постоянно пользовался тем же Option.bind, и он очень
> похож на flatmap, описанный тобой

Да, flatMap это и есть bind.


> Но если ты правду говоришь, и flatmap действительно трактуется так широко, то
> мне всё же не понятно, почему оно называется flatmap.

Даже с Option и Either flatMap можно разбить на map и flatten. Лучше конечно не надо, но можно.

То есть сначала map делает

    Option[ A ] -> Option[ Option [ B ] ]

а потом flatten делает

    Option[ Option[ B ] ] -> Option[ B ]


> В общем, мне сдаётся, что называть эту функцию банальным bind-ом разумнее, нежели flatmap-ом.

Может, разумнее а может и нет. Споры про именование - вообще неблагодарное занятие. По мне так слово bind может означать очень много чего, в том числе и то, что делает flatMap.


> Насколько распространено использование flatmap-а в обозначенном тобой контексте? В смысле,
> когда flatmap и flatten суть синонимы bind и join. Я хотел
> бы увидеть, что flatmap действительно рассматривается так широко, как ты это
> сейчас описал. Может быть, у тебя найдётся ссылка на соответствущую литературу?

Для Окамла твоего не знаю литературы. Для Скалы можешь попробовать "Functional Programming in Scala" или "Get Programming with Scala", вот статья по мотивам текста оттуда:
https://freecontent.manning.com/using-option-in-scala-part-2.../

Вот ещё про то же самое, очень коротко:
https://alvinalexander.com/scala/handling-nested-options-wit.../

Вот наоборот подлиннее, в том числе явно упоминается, что flatMap это bind:
https://medium.com/free-code-camp/demystifying-the-monad-in-...

Вот про Яву:
https://stackabuse.com/java-8-streams-definitive-guide-to-fl.../

Везде даются примеры с Option/Optional вместо Either, наверное для простоты понимания. Но я и Option/Optional, и Either совместно с flatMap видел в коде реальных проектов. Уж сам решай, верить или нет.

 

Ваше сообщение
Имя*:
EMail:
Для отправки ответов на email укажите знак ! перед адресом, например, !user@host.ru (!! - не показывать email).
Более тонкая настройка отправки ответов производится в профиле зарегистрированного участника форума.
Заголовок*:
Сообщение*:
  Введите код, изображенный на картинке: КОД
 
При общении не допускается: неуважительное отношение к собеседнику, хамство, унизительное обращение, ненормативная лексика, переход на личности, агрессивное поведение, обесценивание собеседника, провоцирование флейма голословными и заведомо ложными заявлениями. Не отвечайте на сообщения, явно нарушающие правила - удаляются не только сами нарушения, но и все ответы на них. Лог модерирования.



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру