求助,如何批量定义函数
(DEFUN L1 ()(SETQ KEY 2)
(PRINC KEY)
)
(DEFUN L2 ()
(SETQ KEY 2)
(PRINC KEY)
)
(DEFUN L3 ()
(SETQ KEY 3)
(PRINC KEY)
)
(DEFUN L4 ()
(SETQ KEY 4)
(PRINC KEY)
)
(DEFUN L5 ()
(SETQ KEY 5)
(PRINC KEY)
)
(DEFUN L6 ()
(SETQ KEY 6)
(PRINC KEY)
)
如何用循环把上诉的函数一次性定义?我试了半天,没啥思路。
有没有大神给点方案,还是不能实现?
本帖最后由 liuhe 于 2023-2-18 12:46 编辑
(defun LL( / J I) ;;;;;定义函数
(setq i 6 j 1)
(repeat i
(eval (read (strcat "(defun-q"
" "
"l"
(rtos j 2 0)
"(key)(SETQ KEY"
" "(rtos j 2 0)
")(PRINC KEY))"
)
)
)
(setq j (1+ j))
))
已经自行解决
2023.02.18
删除命令,尤其是自定义快捷键更新
(defun DELUSUBR (/ J I);;;;;删除定义函数
(setq i 6
j 1
)
(repeat i
(IF (= 'LIST (TYPE (eval (read (strcat "l" (rtos j 2 0))))))
(SET (read (strcat "l" (rtos j 2 0))) NIL)
)
(setq j (1+ j))
)
)
(defun nopadef (exps values)
(mapcar '(lambda (def_x def_y) (set def_x def_y)) exps values)
)
(nopadef '(lst e l) '( (1 2 3) 2 3)) 菜卷鱼 发表于 2023-2-15 08:33
(defun nopadef (exps values)
(mapcar '(lambda (def_x def_y) (set def_x def_y)) exps values)
)
6666666666666
菜卷鱼 发表于 2023-2-15 08:33
(defun nopadef (exps values)
(mapcar '(lambda (def_x def_y) (set def_x def_y)) exps values)
)
你这个我没看懂啊,能不能举个例子:'(, 我没看到我定义了那些函数 (foreach n '(1 2 3 4 5 6)
(eval (list 'defun (read(strcat"L"(itoa n))) nil (list 'setq 'key n)'(princ key) ))
) tryhi 发表于 2023-2-15 11:43
(foreach n '(1 2 3 4 5 6)
(eval (list 'defun (read(strcat"L"(itoa n))) nil (list 'setq 'key n)'(pr ...
理解 深刻 6666 (mapcar '(lambda (x) (eval(read(strcat "(defun c:l"(itoa x)"(/)(setq key "(itoa x)")(princ key)(princ))")))) '(1 2 3 4 5 6)) 感谢大佬,学习了 本帖最后由 菜卷鱼 于 2023-2-15 14:49 编辑
liuhe 发表于 2023-2-15 08:55
你这个我没看懂啊,能不能举个例子, 我没看到我定义了那些函数
(nopadef '(lst e l) '( (1 2 3) 2 3))
(nopadef [函数:字符串列表] [各函数对应的值列表])
偷懒用了单引号,单引号代表 quote
相当于 (nopadef (list (read "lst") (read "e") (read "l")) (list (list 1 2 3) 2 3))
定义的函数 lstel
函数的值分别是 (1 2 3) 2 3
lst ==>(list 1 2 3)
e ==> 2
l ==> 3
页:
[1]
2