ada*_*amw 3 functional-programming scala scalaz
任何函子都可以进行这样的转换,不仅是Future:
implicit class RichFunctorReader[F[_]: Functor, A, B](fr: F[Reader[A, B]]) {
def toReaderFunctor: Reader[A, F[B]] = Reader { a => fr.map(_.run(a)) }
}
Run Code Online (Sandbox Code Playgroud)
我想知道这是Readermonad 的特殊属性,还是有一个更通用的概念使之成为可能?
例如,当我们泛化为时Reader,它就不起作用Kleisli,因此我怀疑Reader这里是“特殊情况”。