我目前正在玩 Scalaz 非阻塞期货。承诺。我正在努力使以下函数尾递归:
@tailrec
private def repeat( res: Promise[I] ):Promise[I] =
res map p flatMap {
(b:Boolean) =>
if( b ) repeat( res flatMap f ) else res
}
wherep
是一个带有 type 的谓词,是一个带有 typeI=>Boolean
的f
并发函数I=>Promise[I]
。
该方法在没有注释的情况下编译。
有什么提示吗?谢谢