User
Что касается функции unit, то она отвечает за создание монады и для каждой монады она отличается. Для примера, функция unit. для монады Option это Some(x) для монады List это List(x) для монады Try это Success(x)
import scala.util.Try def f[T]: T => Try[T] = x => throw new Throwable val num: Int = 5 Try(num) flatMap f f(num)
Разве Try является монадой? У нее же нарушается left unit law…
Пример:
Результаты последних двух выражений отличаются, хотя для монады должны быть равны.
Теперь репозиторий открыт для просмотра.