有没有办法,如何轻松 point Reader 上下文中的值?我可以使用 Reader 对象并忽略上下文:
point
Reader
Reader { _ ⇒ 3 }
Scalaz似乎有一个特定方法 point . 我明白了,这是在 Applicative 上定义的 . 我想,有一些技巧,如何将值放入 Reader 上下文中 .
Applicative
事实上 Reader 的 Applicative 实例,您可以像这样使用它(您当然应该用您希望环境的任何类型替换 String ):
String
3.point[({type L[X] = Reader[String, X]})#L]
如果您更愿意避免使用丑陋的lambda并且不介意定义额外的类型别名,则可以编写以下代码:
type MyReader[X] = Reader[String, X] 3.point[MyReader]
Scalaz 7还提供了一些简洁的速度,使其更加清晰:
3.liftReader[String]
但是,它们或多或少都相互之间(和您的解决方案)相同 .
1 回答
事实上
Reader
的Applicative
实例,您可以像这样使用它(您当然应该用您希望环境的任何类型替换String
):如果您更愿意避免使用丑陋的lambda并且不介意定义额外的类型别名,则可以编写以下代码:
Scalaz 7还提供了一些简洁的速度,使其更加清晰:
但是,它们或多或少都相互之间(和您的解决方案)相同 .