Здравствуйте, Klapaucius, Вы писали:
K>Не понятно, зачем вам может понадобиться "информация о типе монады" если не для специфических для данной монады оптимизаций. Если коротко, то эта информация в liftM2 никак не попадает — это называется "абстракция".
Совершенно верно. Вот я и хочу увидеть конкретный вид этой абстракции, чтобы оценить почему имеются проблемы (если имеются) с её реализацией на языках типа C++.
K>Все еще не понимаю, что вам не нравится. Что Filter называется Where не смотря на то, что смысл у него не совсем тот либо совсем не тот, что у sql-ного where?
Имя не принципиально. Даже если переименовать sql, он всё равно останется со своей огромной кучей проблем и ограничений. Для узкого круга задач (типа работы с таблицами и то желательно без join'ов) он ещё более менее подходит, но linq то позиционируется гораздо шире...
K>Не знаю, я на окамле не пишу. Но вот компания, которая пишет — Jane Street — выпускала и монадические библиотеки вроде Async и синтаксические расширения для монад, а значит, по всей видимости, использует.
Не, ну так специализированные библиотеки под особые задачи с концепциями типа монад есть и на C++. Но применяются то они только в этих самых особых случаях. В то время как в том же Хаскеле трудно найти приложение без монад.
K>Зависит от того, что у вас возвращает exp. Я же вроде понятно написал выше по ветке для комбинирования функций какого вида нужны монады.
Возращает double. Но не в этом суть. Так получается что уже не для всех случаев полезны монады? )))