3
有沒有辦法,如何在Reader
的上下文中輕鬆point
值?
我可以使用Reader
對象,並忽略上下文:點閱讀器monad scala
Reader {
_ ⇒ 3
}
斯卡拉茲似乎有一個方法
point
具體。我明白了,這是在
Applicative
上定義的。我想,有一些技巧,如何將價值放入
Reader
的上下文中。
有沒有辦法,如何在Reader
的上下文中輕鬆point
值?
我可以使用Reader
對象,並忽略上下文:點閱讀器monad scala
Reader {
_ ⇒ 3
}
斯卡拉茲似乎有一個方法
point
具體。我明白了,這是在
Applicative
上定義的。我想,有一些技巧,如何將價值放入
Reader
的上下文中。
其實也有一個Applicative
實例Reader
,您可以使用像這樣(你當然應該與任何類型的你希望你的環境中代替String
):
3.point[({type L[X] = Reader[String, X]})#L]
如果你喜歡避免難看的類型拉姆達並且不介意定義額外的類型別名,你可以寫,而不是執行以下操作:
type MyReader[X] = Reader[String, X]
3.point[MyReader]
Scalaz 7還提供速記不錯位,使得這更清潔:
3.liftReader[String]
儘管如此,它們或多或少都相互等價(相互之間)。