使用我的遞回函式,我有一個失敗條件的條件。
當失敗條件的后果是 時nil,一切正常。
但是當我嘗試將失敗條件的結果更改為其他內容時:
(defun rec ()
(cond ((null t) (format t ....))
....)
它說該(format t....)功能無法訪問...為什么?
uj5u.com熱心網友回復:
在 Common Lisp 中,t是一個布爾常量,表示“真”。因此,運算式(null t)檢查是否t為空串列,這顯然總是錯誤的。所以編譯器足夠聰明,可以推斷出代碼(format ...永遠不會到達并且不會編譯它。
當人們忘記 的含義t并試圖將其用作變數時,有時會出現此類錯誤。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/530257.html
標籤:递归通用语言
上一篇:ClassNotFoundException:org.apache.commons.math3.distribution.NormalDistribution
