2012-10-08 101 views
4

我試圖寫一個函數可以說A(n)變量在Lisp程序

這是應該有一個列表

(the answer is n)

n是列表中的任意整數,我希望當我鍵入(A 4)

它應該顯示(the answer is 4)

我不是當然如何去想它使用setq and the list function

但如何構造它使我感到困惑我只是一個試圖學習lisp的新手,任何想法或書我可以讀我將不勝感激。

回答

4
(defun A (n) 
    (list 'the 'answer 'is n)) 
(A 4) 
=> (the answer is 4) 
+0

謝謝,我戴上了錯誤的帽子。 –

+5

我個人比較喜歡quasiquotes:'\'(答案是,n)'。 –

+1

@ ChrisJester-Young必須提到的是,這種功能可以返回字面conses。 例如,如果代碼是 '(,n是答案是什麼) 而這可能導致非明顯的錯誤。請參閱[爲什麼此地圖可能導致我的REPL凍結?](http://stackoverflow.com/questions/20207041/why-does-this-mapcan-cause-my-repl-to-freeze) – Menschenkindlein

0

你的問題的另一部分是什麼書讀。通常人們推薦閱讀「Practical Common Lisp」這本書,其中有一本對Common Lisp非常友好且易於閱讀的介紹。然後是Cliki.net上的「Getting Started」文章。這應該足以開始使用該語言。