Re[2]: Что такое монады?
От: Аноним  
Дата: 22.11.10 14:18
Оценка:
Здравствуйте, Klapaucius, Вы писали:

K>С точки зрения программиста монада это абстрактный контейнер с тремя функциями.

K>map — заменяет содержимое контейнера без изменения самого контейнера. Заменяем каждый гвоздь в коробке шурупом, каждый int в массиве float-ом — так map и работает.
K>unit — берет элемент и возвращает контейнер с одним этим элементом. Делаем из гвоздя коробку с одним гвоздем. Делаем из int массив из одного int.
K>join — уменьшает вложенность контейнеров — из коробки коробок гвоздей делает коробку с гвоздями (из массива массивов int-ов — массив int-ов). Ну или из коробки коробок коробок гвоздей делаем коробку коробок гвоздей. Это уже сложная концепция, доступная только программистам и более абстрактно развитым товарищам; обычный человек будет обескуражен тем, как в одну коробку могли поместиться несколько точно таких-же коробок. Впрочем, простая замена коробок коробок на мешки мешков или пакеты пакетов позволяет совершить абстрактно-теоретико-категориальный прорыв.

Спасибо, это все формально понятно. Но что это реально дает при программировании? Самое главное — зачем все это, как эта концепция (при должной поддержке со стороны языка — считаем что мы авторы языка и можем делать что хотим) реально облегчит жизнь программистам?
Пока я из Вашего объяснения вижу некую абстракцию типа хитрого контейнера для хранения данных, причем непонятно в каких случаях ее целесообразно применять, и чем он лучше обычных массивов/списков и т.д. Ясно что я чего-то недопонимаю, и когда пойму мне самому смешно будет это читать:) Но что именно?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.