我是lisp的新手,並且正在編寫幾個簡單程序以便更熟悉它。我正在做的事情之一是編寫一個階乘方法的遞歸和迭代版本。但是,我遇到了一個問題,似乎無法解決它。Lisp警告:xx既沒有聲明也沒有綁定,它將被視爲聲明爲特殊
我看到類似的錯誤 Lisp: CHAR is neither declared nor bound 但實際上沒有達到解決方案,除了OP意識到他犯了一個「輸入錯誤」。在REPL中,我可以使用setf函數,它工作正常。我也用emacs來使用LispBox。我將不勝感激任何建議!
(defun it-fact(num)
(setf result 1)
(dotimes (i num)
(setf result (* result (+ i 1)))
)
)
警告在IT-FACT: 結果既不申報也沒有約束, 就好像宣佈SPECIAL它將被處理。
見http://www.cs.cmu.edu/Groups/AI /html/faqs/lang/lisp/part1/faq-doc-4.html,特別是「GOOD:」示例。這裏的人都非常友好,但是如果代碼縮進更像典型的Lisp代碼,則代碼更容易閱讀。乾杯! – Alec 2009-09-06 17:05:44