【发布时间】:2016-06-08 20:19:52
【问题描述】:
我正在使用 scala 2.11 和 Scalaz 7.2.3(最新)。
我在组合 Kleisli 时遇到了麻烦。我有两个功能:
type A = ...
type B = ...
def set: Set[A]
def f: A => Kleisli[scalaz.effect.IO, B, Unit]
val result: Set[Kleisli[scalaz.effect.IO, B, Unit]] = set.map(f(_))
但我正在寻找更多作为 Kleisli 组合的结果。其实我的类型应该是Kleisli[scalaz.effect.IO, B, Unit],在同一个IO下各个效果叠加。
我尝试过折叠之类的东西:
set.fold(Kleisli.???)((acc, a) => acc andThen f(a))
但我找不到正确的语法,尤其是零 Kleisli。
任何帮助将不胜感激!
编辑:澄清
【问题讨论】:
-
你的问题不是很清楚。您想为
Set[A]的所有元素执行f2吗?elements与第一部分有什么关系? -
对不起,我会尽量详细说明。是的,需要对 Set[A] 的每个元素执行 f。
标签: scala functional-programming scalaz