函数名 SUBR 转 SYM
(defun mymul (a b) (* a b));;函数j1
(defun j1 (funname arglist)
(if (or (= (type funname) 'SUBR) (= (type funname) 'USUBR))
(setq funname 'funname)
)
(apply funname arglist)
)
;;函数j2
(defun j2 (funname arglist / temp)
(if (or (= (type funname) 'SUBR) (= (type funname) 'USUBR))
(progn (setq temp funname) ;
(setq funname 'temp)
;;(setq funname (function temp))
)
)
(apply funname arglist)
)运行结果如下:
$ (mymul 2 3)
6
_$ (j1 'mymul '(2 3))
6
_$ (j1 mymul '(2 3))
; 错误: 函数错误: FUNNAME
_$ (j2 mymul '(2 3))
6
函数名数据类型 SUBR 一般用quote或function可以转成SYM
但是调用函数过程中需要变量才能达到目的 这样写呢?
(defun j1 (funname arglist)
(and (or (= (type funname) 'SUBR) (= (type funname) 'USUBR))
(apply funname arglist)
)
) 自贡黄明儒 发表于 2013-12-28 16:01 static/image/common/back.gif
这样写呢?
; 错误: 函数错误: #<USUBR @09c5fc80 MYMUL>
页:
[1]