原来progn的表达式最多到256个
一直以为progn的表达式可以有很多很多,原来progn的表达式最多到256个。当超过256个时,lisp能运行,但是编译时会发生参数过多的错误。
以下表达式不能用了,有方法替代吗?
(if (> a b) (progn(表达式1)
~~~
(表达式 400)))
是的Gu版主的生成代码器就遇到过这个问题,很奇怪。。。 本帖最后由 e2002 于 2012-4-14 23:28 编辑
嵌套一次不久解决了?
(progn
(progn
1-256
)
(progn
257-400
)
) 啊>\?原来如此啊,学习了,谢谢提醒 没能力用到这么多,记一下还是有用的。谢谢 用cond函数替换if函数即可 其实不光progn,很多函数都不能有多于255个参数。你尝试一下在一个表中从1加到256 (PROGN
(HFK)
(表达式1)
(表达式2)……(表达式270))
类似这样的,怎么处理呢?求各位指教一下! 拆子函数试试 本帖最后由 baitang36 于 2021-5-21 07:48 编辑
我的办法是把这个progn变成defun,定义一个函数,然后调用这个函数。这个progn只是给编译器看的,编译后的代码中没有这个。超过256个的lsp可以运行,但无法编译成fas
有些程序command很多,一句会反编译成好多个。这样反编译的程序无法再进行编译。
页:
[1]