cabinsummer 发表于 2012-4-14 10:00:13

[风之影][误导他人的经验]max能处理的最大数量255

本帖最后由 cabinsummer 于 2012-4-14 15:42 编辑

在我的明细表帖子中,yjr111提出用max函数处理最大值时受到表长限制,但是不知道限制的界限在哪里。下面的程序可以测试一下,255个元素可求值,256则出错。
(setq n 1 a nil)
(repeat 255
(setq a (cons n a) n (1+ n))
)
(eval (cons 'max a))
返回255
(setq n 1 a nil)
(repeat 256
(setq a (cons n a) n (1+ n))
)
(eval (cons 'max a))
返回错误: 内部限制: 函数调用的参数太多: MAX

详见三楼顾版解释

Gu_xl 发表于 2012-4-14 13:40:03

经验不都是对的!不要误导人!参数个数的限制是针对eval函数的,而非max函数!max函数参数个数没有限制!
试试
(apply 'max a)

dinosaurhxe 发表于 2012-4-14 10:53:39

学习了。不过平常比较一般不会有那么多数吧。

czcxxx 发表于 2015-10-22 15:54:07

oistre 发表于 2018-8-31 09:43:44

谢谢大神,牛牛牛牛!!!

nzl1116 发表于 2018-9-1 00:24:51

Gu_xl 发表于 2012-4-14 13:40
经验不都是对的!不要误导人!参数个数的限制是针对eval函数的,而非max函数!max函数参数个数没有限制!
...

绝对不超过255个。
页: [1]
查看完整版本: [风之影][误导他人的经验]max能处理的最大数量255