为什么不能编译?为什么会说有序是一个未定义的函数?
(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
答案 0 :(得分:0)
在我的Emacs-Slime-SBCL组合中运行相同的代码位会产生预期的结果 - 一个带有“无效参数数量”消息的条件。如果它有帮助,请先尝试评估第一个defun
。确实有点神秘。
作为旁注释;正如@Sylwester所做的那样,我注意到你可能将funcall
和apply
混合在一起。后者将list参数“解包”到几个单独的参数中,而前者只是按原样传递给定的参数。