找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 941|回复: 7

[1104]请问LISP可以在程式中在呼叫并执行另一个LISP程式吗?

[复制链接]
发表于 2005-11-4 18:10:55 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
[1104]请问LISP可以在程式中在呼叫并执行另一个LISP程式吗?
请问LISP可以在程式中在呼叫并执行另一个LISP程式吗?
烦请各位高手帮忙解答一下
感激不尽!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2005-11-4 22:55:20 | 显示全部楼层
当然可以,把被呼叫的做成子程序(当作一函数来看待)就行了!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-11-4 23:55:20 | 显示全部楼层
請問這樣寫對嗎

(defun c:test ()
(setq a (load "pbox.lsp"))
(command pbox)
(prin1)
)
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-11-5 06:02:52 | 显示全部楼层
(defun c:test ()
(if (not xxx)(load "pbox.lsp"));;xxx是pbox中的函数.如: (not pbox) (not c:box) (not box1)等
(pbox)  ;;如果函数带c: 则 (c:pbox)
(prin1)
)
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-11-5 16:37:50 | 显示全部楼层
没有想象的那么复杂,把自己写的程序和autolisp函数一样看待就可以。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-11-5 22:31:07 | 显示全部楼层
不懂841594 会员所说的意思
难道可以很简单的表达是吗?
因为刚学LISP希望能够了解些原理

另外希望 841594 会员可以看一下这篇文章的计算处理问题
http://www.xdcad.net/forum/showthread.php?s=&threadid=484222
因为在别的软体上有看到这样列出计算式功能
但在版上都是计算出结果的程序没有提供计算出过程的程序
期待出现这样的使用程序
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-11-6 21:34:32 | 显示全部楼层
详细说一下:
比如现在编了一段程序:
(defun aaa()
....
)
这就相当于给lisp环境增加了一个函数,象setq,princ之类的一样,在程序中调用时也是一样的
(defun bbb()
...
(aaa)
...
)
如果是带参数的函数:
(defun ccc(x y)
...
)
就这样调用:
(ccc xx yy)
是c:开头的函数。
可以这样调用:
(c:ddd)
当然这些函数需要load之后才能调用。
你看是不是和lisp函数非常相似。

你想要的程序,只需要了解下多义线的数据结构,其他不需要太多的技巧,最好试着自己解决一下。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-11-9 00:17:29 | 显示全部楼层
谢谢 841594 您的回答

如果像下面这样的呼叫式
要编写成为副程式该怎样改会比较好呢?

(defun c:TEST ()
(load "LSP.LSP")
(c:DisA)
;呼叫另一个LSP程式方法
(prin1)


希望各位能够解答一下
谢谢
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2024-11-18 04:22 , Processed in 0.377789 second(s), 45 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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