(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左右)时,我遇到了最大递归深度错误。
有没有类似的内置工具不会遇到这个问题,或者我必须自己想出一个尾递归等效项?
发布于 2013-05-04 10:04:26
使用--stack选项启动麻省理工学院方案。如下所示:
$ mit-scheme --stack 10000这是我使用开箱即用的堆栈和1000个堆栈的结果:
> (length (filter even? (iota 1000000)))
;Aborting!: maximum recursion depth exceeded然后,使用--stack 10000之后
> (length (filter even? (iota 1000000)))
;Value: 500000知道filter具有这种明显的非尾递归行为有点令人不安。
https://stackoverflow.com/questions/16369588
复制相似问题