标签: scala scalaz applicative
<*>似乎被定义为M[A]的方法,它接受M[A=>B]。这就是我需要括号的原因:
<*>
M[A]
M[A=>B]
val f: A => B => C = ... val as: List[A] = ... val bs: List[B] = ... val cs: List[C] = ... val r = cs <*> (bs <*> (as <*> List(f)))
另一方面,如果我将<*>定义为接受M[A=>B]的{{1}}方法,我可以写
有意义吗?