2017-10-12 135 views

回答

5

In Common Lisp,(some-value)是一個單一元素的列表,由some-value給出。

列表的經典圖形表示示出了在作用一個單一的值列表是一個指針的「缺點」(對)到some-valuenil

使得流汗它的car產生some-value,而cdr產生nil

那麼,這個s表達式是什麼意思:((x))?如果在第一個示例中用(x)代替some-value,則可以得到這個結果。也就是說,這不是一個「多支架列表」,而只是一個單一元素列表,它本身就是一個單一元素的列表(換句話說,一個列表中的車是單元素列表)。這樣就可以圖形展示爲中下圖:

所以,這一次得到x你必須使用car兩次,寫(car (car list))(其實這可以縮寫在共Lisp的有(caar list))(看到reference)。

我留給你完成練習,得出對應於(((x)))圖,並找到如何從這個名單中提取x

+0

你如何創建這個漂亮的圖形? – sds

+0

@sds,我在我的Mac上使用舊版本的OmniGraffle。 – Renzo

0

這樣的事情,比如:

(defun first-atom (c) 
    (if (consp c) 
    (first-atom (first c)) 
    c))) 

這是稍有不當,因爲(first-atom 1)是不是一個錯誤,它可能應該是:它需要一個缺點它調用遞歸當地FN做的工作外檢查。你有點想法。


對不起,可能是拙劣的縮進:很難找到一個電話。

相關問題