我使用的是Scala 2.11和Scalaz 7.2.3(最新版)。結合Kleisli使用套折
我在組合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。
任何幫助,將不勝感激!
編輯:澄清
你的問題是不完全清楚。你想執行'f2'對的'集[A]'所有元素?第一部分有什麼「元素」? –
對不清楚,我會盡力精細化。是的,f需要爲集合[A]中的每個元素執行。 – MMacphail