“重载”在C#的学习过程中遇到过,是非常不错的功能。LISP在这方面差了。。。 同一个函数名,可以定义无数个。每一个函数的参数类型及数量都不一样(也可以一样)。 举个例子: (defun DXF (A B) (+ A B) ) (defun DXF (lst) (car lst) ) (defun DXF (str i len) (substr str i len) ) 在LISP里面,只能最后一个DXF函数起作用,后面的会覆盖掉前面的定义。 而有了“重载”功能。每个DXF函数都能起作用。 楼主这样子的做法,某种程度上会遇到麻烦。 LISP真的要重载,其实只要提供一个LIST类型的参数。即 (defun Fun (LST) (setq A (nth 0 LST)) (setq B (nth 1 LST)) ;;etc.... ) |