Скала, эквивалентная монадам Haskell - PullRequest
8 голосов
/ 10 февраля 2010

У меня был некоторый опыт работы с Haskell и в настоящее время я изучаю Scala. Интересно, есть ли в Scala что-то эквивалентное Monads ??

Ответы [ 4 ]

12 голосов
/ 10 февраля 2010

Вы, вероятно, хотите проверить scalaz ; На него сильно повлиял Хаскелл. Действительно, одного из главных участников часто спрашивают, почему они не просто используют Haskell, как им, похоже, так нравится!

Скалаз активно использует имплициты, чтобы украсить сооружения своими монадами. Например:

val fibs = (0, 1).iterate[Stream]( i => i._2 -> (i._2 + i._1) ).map(_._1)
println( fibs.take(10) )
9 голосов
/ 11 февраля 2010

Я думаю, стоит отметить, что «для понимания» Скалы эквивалентно монадическому «до» Хаскелла

0 голосов
/ 12 февраля 2016

В стандартной библиотеке Scala нет явного понятия монады (нет подходящей характеристики / класса или класса типов).

Scala решает эту проблему в особой манере, см. Scala в разделе на для понимания для получения подробной информации.

0 голосов
/ 02 октября 2011

И Option, и List являются монадами. Я также считаю, что левая и правая проекции Либо - тоже монады.

...