我想了解什麼單子(不只是在斯卡拉,但例如使用斯卡拉)。讓我們考慮一個單子的最(在我看來)簡單的例子:在斯卡拉了解單子
scala.Some
正如一些文章的狀態,its classic sense每個單子應保留爲flatMap
和unit
功能的一些規則。
這裏是scala.Some
@inline final def flatMap[B](f: A => Option[B]): Option[B]
這樣的定義,更好地理解它我想了解它from the category theory standpoint。所以,我們正在考慮一個monad,它應該是一個仿函數(但是在什麼之間?)。
下面我們就來Option[A]
類別和Option[B]
,並與f: A => Option[B]
傳遞給它沿flatMap
應該定義一個函子它們之間。但是在傳統類別定義中,它是從類別到其自身的函子。
你的問題到底是什麼? monad的概念和'flatMap'的作用很簡單:monad是一個包含一個值的盒子,並且你給一個'flatMap'函數'f',它用框中的值做一些事情,然後你回來另一個框中包含將「f」應用於原始框的值的結果。 – Jesper
該類別是scala類型的類別,所以'Option'是該類別的endofunctor。 – Lee
@Lee那麼它將每個類型'T'映射到'Option [T]'? – user3663882