【问题标题】:Why does lisp say this functon is undefined?为什么 lisp 说这个函数是未定义的?
【发布时间】:2013-10-21 02:06:20
【问题描述】:

我把它写在源缓冲区中:

 (defun make-cd (artist album rating like) 
  (list :artist artist :album album :score rating :like like))
(defvar *dab* nil)
(defun addcd (cd) (push cd *dab*))
(defun readab ()
  (dolist (cd *dab*)
    (format t "~{~10t~a--~5t~a~%~}~%" cd)))

我通过按 C-c C-k 编译成 REPL。

前几个函数在 REPL 中运行良好:

CL-USER> (make-cd "dixie" "fun time" 6 "y")
 (:ARTIST "dixie" :ALBUM "fun time" :SCORE 6 :LIKE "y")
CL-USER> (addcd (make-cd "dixie" "whooola" 6 "y"))
 ((:ARTIST "dixie" :ALBUM "whooola" :SCORE 6 :LIKE "y"))

但最后一个被报告为未定义?

CL-USER> (readab)
  ; Evaluation aborted on #<CCL::UNDEFINED-FUNCTION-CALL #x302000B3895D>.

我是否遗漏了一些非常明显的东西?

【问题讨论】:

  • clisp 中的 wfm - 没有错误,按预期输出。请尝试调试器。
  • 您的原始代码对我有用。也许包裹有问题?尝试将(in-package :cl-user) 添加到源缓冲区的开头,以确保...

标签: lisp common-lisp


【解决方案1】:

这个问题是由于 C-c C-k 命令在处理之前没有自动保存源,因此处理发生在源的旧保存上。先保存,问题就解决了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-04-11
    • 2012-09-30
    • 2018-07-06
    • 1970-01-01
    • 1970-01-01
    • 2018-02-19
    • 2017-02-26
    相关资源
    最近更新 更多