-
apply 应该打上引号
-
elisp 怎样迭代调用一系列相似的函数? 这个问题,我想用试试用宏展开它,递归的时候没脑袋没转过弯,backquote 其实就是 “apply” 的意思吧,然后也没想到
cdr
接着使用@
:(defmacro recall-rest (arg fn &rest fn-rest) (if fn `(funcall ',fn (recall-rest ,arg ,(car fn-rest) ,@(cdr fn-rest))) `,arg)) (macroexpand-all '(recall-rest arg fun1 fun2 fun3)) ;; => ;; (funcall (quote fun1) ;; (funcall (quote fun2) ;; (funcall (quote fun3) ;; arg)))