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]
尽管如此,它们或多或少都相互等价(相互之间)。