我有一个功能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
应用于上次计算的输出?
答案 0 :(得分:0)
我可以使用iterateEval[F[_], A](start: A)(f: A => F[A])
函数来执行此操作
val p = Process.iterateEval(1)(f).take(10)