liuhe 发表于 2023-2-15 00:13:00

求助,如何批量定义函数

(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-15 00:30:42

本帖最后由 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))
)
)



菜卷鱼 发表于 2023-2-15 08:33:51

(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))

liuhe 发表于 2023-2-15 08:50:49

菜卷鱼 发表于 2023-2-15 08:33
(defun nopadef (exps values)
(mapcar '(lambda (def_x def_y) (set def_x def_y)) exps values)
)


6666666666666

liuhe 发表于 2023-2-15 08:55:49

菜卷鱼 发表于 2023-2-15 08:33
(defun nopadef (exps values)
(mapcar '(lambda (def_x def_y) (set def_x def_y)) exps values)
)


你这个我没看懂啊,能不能举个例子:'(, 我没看到我定义了那些函数

tryhi 发表于 2023-2-15 11:43:24

(foreach n '(1 2 3 4 5 6)
        (eval (list 'defun (read(strcat"L"(itoa n))) nil (list 'setq 'key n)'(princ key) ))
)

liuhe 发表于 2023-2-15 12:19:10

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

xyp1964 发表于 2023-2-15 12:19:52

(mapcar '(lambda (x) (eval(read(strcat "(defun c:l"(itoa x)"(/)(setq key "(itoa x)")(princ key)(princ))")))) '(1 2 3 4 5 6))

magicheno 发表于 2023-2-15 13:14:05

感谢大佬,学习了

菜卷鱼 发表于 2023-2-15 14:42:53

本帖最后由 菜卷鱼 于 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
查看完整版本: 求助,如何批量定义函数