0

我有一个功能f和一个频道c

def f(i: Int) = Task.now(i + 1)

val c = channel.lift(f)

我想将函数连续应用f任意次数(或无限期)到先前计算的输出。我提供初始值。

我可以定义一个流程p

val p = Process.emit(1).through(c)

但这只会执行一次。

我怎样才能继续应用c到最后一次计算的输出?

4

1 回答 1

0

我可以使用该iterateEval[F[_], A](start: A)(f: A => F[A])功能来做到这一点

val p = Process.iterateEval(1)(f).take(10)
于 2015-09-18T23:18:55.340 回答