(defun sub () (mapcar '(lambda(x y) (defun x nil (princ y))) lst lst))
求助(defun sub () (mapcar '(lambda(x y) (defun x nil (princ y))) lst1 lst2))
可以实现吗?如果能
其中的x应该是什么类型的数据呢 不行。
defun和setq的第一个参数是固定的符号名,不可以使用变量。
式: (mapcar '(lambda(x y) (defun x nil (princ y))) (list 'a 'b) '(1 2)) 返回:(X X),这里的X是无意义的。
set函数的第一个参数可以是变量,比如:
(mapcar '(lambda(x y) (set x (lambda(y) (1+ y)))) (list 'a 'b) '(1 2))
返回:
(#<SUBR @1a904988 -lambda-> #<SUBR @1a904988 -lambda->)
定义了两个函数a和b:
命令: (a 3)
4
命令: (b 3)
4
ll_j 发表于 2014-9-22 11:03 static/image/common/back.gif
不行。
defun和setq的第一个参数是固定的符号名,不可以使用变量。
式: (mapcar '(lambda(x y) (defun x ...
好吧,本想偷个懒,直接定义出直接使用的c:tt类型的函数名。看来是做不到了 (defun sub ()
(mapcar '(lambda (x y)
(eval (append '(defun)
(list x)
'(nil)
(list (list 'princ y))
'((princ))
)
)
)
'(a b)
'(1 2 3)
)
(princ)
) ivde 发表于 2014-9-22 18:06 static/image/common/back.gif
(defun sub ()
(mapcar '(lambda (x y)
(eval (append '(defun)
成功!膜拜 没看明白啊
页:
[1]