Scala 如何使用依赖于此环境的函数映射读取器

Scala 如何使用依赖于此环境的函数映射读取器,scala,scalaz,Scala,Scalaz,给定读卡器[E,a]和函数(E,a)=>B,如何获得读卡器[E,B]?scalaz中是否存在现有函数 目前,我编写了这个小函数: def map2[E, A, B](reader: Reader[E, A], f: (E, A) => B) : Reader[E, B] = { Reader { e => f(e, reader(e)) } } 我脑子里想不出哪一个组合器能做到这一点。我想你可能会说,reader-reader(e=>f(e,)))使可读性更明显,但我发现你的版

给定
读卡器[E,a]
和函数
(E,a)=>B
,如何获得
读卡器[E,B]
?scalaz中是否存在现有函数

目前,我编写了这个小函数:

def map2[E, A, B](reader: Reader[E, A], f: (E, A) => B) : Reader[E, B] = {
  Reader { e => f(e, reader(e)) }
}

我脑子里想不出哪一个组合器能做到这一点。我想你可能会说,
reader-reader(e=>f(e,)))
使可读性更明显,但我发现你的版本更清晰。