 - (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
但是调用函数过程中需要变量才能达到目的 |