Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
定义
def memoizeCoeval(n: Int): Coeval[Int] = { if (n <= 1) Coeval.now(1) else Coeval.defer(memoizeCoeval(n - 1)).map(_ + 1).memoize }
现在
memoizeCoeval(10000).value
吹堆栈。如果我们.memoize从递归调用中删除 ,它会起作用(如预期的那样)。为什么?
.memoize
这是 Coeval 的缺点,您可以使用 Eval 代替它以相同的方式进行堆栈安全的递归记忆计算。