Leolaputa 发表于 2024-3-18 21:04:33

关于defun内嵌套defun的问题

新手自己写代码时,想把相关联的东西放在一起。于是就出现了如下代码

(defun C:TT()
(cond
    (test1 (APP_TT1))
    (test2 (APP_TT2))
);end cond

(defun APP_TT1()
(command "line")
);end defun TT1

(defun APP_TT2()
(command "copy")
);end defun TT1

);end defun

但是这个代码实际上并无法执行,因为无法跳转到APP_TT1上,会说找不到。
假如把defun TT1和TT2放在最开头,而其他判别条件放在后面,就能正常执行。
我猜测是他读代码是从上往下读,读到前面没有提到过,又无法识别的就跳错了,请问是不是这样。
因为我是通过initget搞了好几个选项的,以至于前面好多的defun,不同的东西修改起来从下往上翻好不习惯。

你有种再说一遍 发表于 2024-3-18 21:28:39

编译成vlx看看能不能

飞雪神光 发表于 2024-3-18 21:16:45

对 代码是从上往下加载的 飞诗编辑器 在函数名上右键 可以跳转至函数位置

ssyfeng 发表于 2024-3-19 08:48:09

刚学建议多看看书,看了就多写代码,N年后又是一位大侠。
学习资料:http://bbs.mjtd.com/forum.php?mod=viewthread&tid=80070

vitalgg 发表于 2024-3-19 09:28:08

先定义,再使用

kozmosovia 发表于 2024-3-19 10:14:45

VLISP是面向过程的,遵循先定义再使用的原则,所以Defun里面的Defun要放在世纪运行的代码前面先定义,后面才能调用。

Leolaputa 发表于 2024-3-19 20:01:00

你有种再说一遍 发表于 2024-3-18 21:28
编译成vlx看看能不能

没有试过咧。

Leolaputa 发表于 2024-3-19 20:02:29

飞雪神光 发表于 2024-3-18 21:16
对 代码是从上往下加载的 飞诗编辑器 在函数名上右键 可以跳转至函数位置

谢谢谢谢,我试试。

Leolaputa 发表于 2024-3-19 20:49:37

ssyfeng 发表于 2024-3-19 08:48
刚学建议多看看书,看了就多写代码,N年后又是一位大侠。
学习资料:http://bbs.mjtd.com/forum.php?mod=v ...

现在就是业余时间给自己私人定制一点功能啦。太复杂的东西还不会。

Leolaputa 发表于 2024-3-19 20:52:16

vitalgg 发表于 2024-3-19 09:28
先定义,再使用

好的,谢谢。
页: [1] 2
查看完整版本: 关于defun内嵌套defun的问题