ll_j 发表于 2014-8-3 06:21:52

在c:t12中把lst设成局部变量是正解,或者最后直接使用setq。

langjs 发表于 2014-8-3 11:16:21

子函数修改上一级程序变量不是个好习惯。

wowan1314 发表于 2014-8-3 11:28:15

本帖最后由 wowan1314 于 2014-8-3 12:20 编辑

langjs 发表于 2014-8-3 11:16 static/image/common/back.gif
子函数修改上一级程序变量不是个好习惯。
一般编程不会出现这个情况!

我主要是为了 给EE编辑器 增加监视变量 与 取消、置空监视变量这个功能才 这样编的!

有这个编辑器 , 基本可以不用 自带的编辑器了 , 调试部分我也做了些,简单的错误都可以找出 了!

因为EE现在是收费软件了 , 所以我也不好再推荐了!卖弄下我自定义的lisp编辑器!哈哈



xyp1964 发表于 2014-8-3 12:32:49

局部变量先进变量表,程序执行完会自动清空(defun c:t12 (/ a1 b2 c3 lst)
(setq a11
        b22
        c33
        lst '(a1 b2 c3)
)
(princ)
)

wowan1314 发表于 2014-8-3 12:40:37

本帖最后由 wowan1314 于 2014-8-3 12:48 编辑

xyp1964 发表于 2014-8-3 12:32 static/image/common/back.gif
局部变量先进变量表,程序执行完会自动清空
全部代码如下!

我在EE编辑器里面输入某个值 后 自动执行下面这个函数。 其后不会再有程序 处理!

所以对于清空只能在这个函数里面进行!对于同名的无法处理.

其实最好的办法是 下面这个函数 不要变量 ,,通过系统变量 来传递数据!(defun aa:ever-err2 ( *琴瑟琵*琶* )
    (if (null *琴瑟琵*琶*)
      (setq *jianshibianliang* nil)
      (if (= nil (car *琴瑟琵*琶*))
            (mapcar
                '(lambda(x)
                  (set x nil)
                )
                *jianshibianliang*
            )
            (setq *jianshibianliang*
                (vl-remove-if
                  '(lambda(x)
                        (member x *琴瑟琵*琶*)
                  )
                  *jianshibianliang*
                )
            )
      )
    )
    (princ)
)

print1985 发表于 2014-8-4 11:10:37

没搞懂你想要的功能
A1 B2 C3已经被清空了 最后再(setq lst (list a1 b2 c3))不就行了吗?

机械工程师 发表于 2014-8-5 14:26:54

好像又折腾出些好玩功能了
页: 1 [2]
查看完整版本: 写了个变量表进行清空的函数,但始终有个变量无法清空?!