2010-12-23 62 views
5

我正在自學LISP,其中包含結構和計算機程序解釋的在線文本,但它與我在學習LISP時使用的球拍程序的細節有所不同。例如,SICP說任何列表的終止元素都是'nil',但是Racket不支持'nil'。我如何在球拍中創建一個空列表,以便測試我自己的程序?在球拍中創建一個空列表

回答

13

空列表標記爲'()。所以,你可以創建一個像

(cons 1 (cons 2 (cons 3 '()))) 

這將產生清單

'(1 2 3) 
7

肖恩的答案是正確的列表。但是,如果您想要鍵入nil,那麼這也很簡單。只需在會話開始運行此一次:

(define nil '()) 
+0

謝謝。當然,如果我只是想過它,那麼解決方案就顯而易見了。再次感謝大衛 – Davrand 2010-12-24 16:35:46

+3

還有'空'和/或'空',這取決於你使用的是哪種球拍語言。 – 2010-12-30 00:30:53

2

球拍空單被指定爲:

'()

或爲:

null

我會說null可能是兩個更習慣的,它一致吻合與謂詞null?,測試爲空列表。

查看docs