首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Monix Coeval.memoize炸毁了堆栈

Monix Coeval.memoize炸毁了堆栈
EN

Stack Overflow用户
提问于 2018-05-08 06:31:12
回答 1查看 126关注 0票数 2

定义

代码语言:javascript
复制
def memoizeCoeval(n: Int): Coeval[Int] = {
  if (n <= 1)
    Coeval.now(1)
  else
    Coeval.defer(memoizeCoeval(n - 1)).map(_ + 1).memoize
}

现在

代码语言:javascript
复制
memoizeCoeval(10000).value

炸掉堆栈。如果我们从递归调用中删除.memoize,它就会正常工作(正如预期的那样)。为什么?

EN

回答 1

Stack Overflow用户

发布于 2019-05-07 12:45:19

这是Coeval的缺点,对于堆栈安全的递归内存计算,您可以以同样的方式使用Eval来代替它。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50223371

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档