明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2824|回复: 9

原来progn的表达式最多到256个

[复制链接]
发表于 2012-4-14 23:08:13 | 显示全部楼层 |阅读模式
一直以为progn的表达式可以有很多很多,原来progn的表达式最多到256个。
当超过256个时,lisp能运行,但是编译时会发生参数过多的错误。
以下表达式不能用了,有方法替代吗?
(if (> a b) (progn  (表达式1)
                            ~~~
                         (表达式 400)))




发表于 2012-4-14 23:27:19 来自手机 | 显示全部楼层
是的Gu版主的生成代码器就遇到过这个问题,很奇怪。。。
发表于 2012-4-14 23:27:34 来自手机 | 显示全部楼层
本帖最后由 e2002 于 2012-4-14 23:28 编辑

嵌套一次不久解决了?
(progn
    (progn
         1-256
     )
     (progn
         257-400
      )
)
发表于 2012-4-14 23:32:28 | 显示全部楼层
啊>\?原来如此啊,学习了,谢谢提醒
发表于 2012-4-15 04:14:44 | 显示全部楼层
没能力用到这么多,记一下还是有用的。谢谢
发表于 2012-4-15 07:12:17 来自手机 | 显示全部楼层
用cond函数替换if函数即可
发表于 2012-4-15 07:12:55 来自手机 | 显示全部楼层
其实不光progn,很多函数都不能有多于255个参数。你尝试一下在一个表中从1加到256
发表于 2021-5-20 19:58:08 | 显示全部楼层
(PROGN
      (HFK)
      (表达式1)
      (表达式2)……(表达式270))
类似这样的,怎么处理呢?求各位指教一下!
发表于 2021-5-20 20:28:50 来自手机 | 显示全部楼层
拆子函数试试
发表于 2021-5-21 07:46:12 | 显示全部楼层
本帖最后由 baitang36 于 2021-5-21 07:48 编辑

我的办法是把这个progn变成defun,定义一个函数,然后调用这个函数。这个progn只是给编译器看的,编译后的代码中没有这个。超过256个的lsp可以运行,但无法编译成fas
有些程序command很多,一句会反编译成好多个。这样反编译的程序无法再进行编译。

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2025-5-17 05:40 , Processed in 0.196733 second(s), 30 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表