首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Mit-scheme,带有内置过滤功能的递归错误

Mit-scheme,带有内置过滤功能的递归错误
EN

Stack Overflow用户
提问于 2013-05-04 09:04:23
回答 1查看 916关注 0票数 0
代码语言:javascript
复制
(filter even? (numb-2tx 100000))

;Aborting!: maximum recursion depth exceeded
;;numb-2tx generates a list from 2 to x, even for very large values of x (tested with 2000000)

当我尝试将过滤函数应用于非常长的列表(>40,000左右)时,我遇到了最大递归深度错误。

有没有类似的内置工具不会遇到这个问题,或者我必须自己想出一个尾递归等效项?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-05-04 10:04:26

使用--stack选项启动麻省理工学院方案。如下所示:

代码语言:javascript
复制
$ mit-scheme --stack 10000

这是我使用开箱即用的堆栈和1000个堆栈的结果:

代码语言:javascript
复制
> (length (filter even? (iota 1000000)))

;Aborting!: maximum recursion depth exceeded

然后,使用--stack 10000之后

代码语言:javascript
复制
> (length (filter even? (iota 1000000)))

;Value: 500000

知道filter具有这种明显的非尾递归行为有点令人不安。

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

https://stackoverflow.com/questions/16369588

复制
相关文章

相似问题

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