为什么我会得到"未定义的功能"编译函数时发出警告?

时间:2015-01-10 11:43:03

标签: emacs lisp common-lisp sbcl

为什么不能编译?为什么会说有序是一个未定义的函数?

(defun ordered (numbers)
  (sort numbers #'<))

(defun printing-ordered (numbers)
  (princ (apply #'ordered numbers)))

我正在使用SBCL,而Emacs则使用SlIME。 编译时得到的错误是:

; compilation unit finished
;   Undefined function:
;     ORDERED
;   caught 1 STYLE-WARNING condition

1 个答案:

答案 0 :(得分:0)

在我的Emacs-Slime-SBCL组合中运行相同的代码位会产生预期的结果 - 一个带有“无效参数数量”消息的条件。如果它有帮助,请先尝试评估第一个defun。确实有点神秘。

作为旁注释;正如@Sylwester所做的那样,我注意到你可能将funcallapply混合在一起。后者将list参数“解包”到几个单独的参数中,而前者只是按原样传递给定的参数。