2012-01-19 42 views
0

我嘗試直接做到這一點的解釋:Lisp的強迫和設置功能說明

(setf example (coerce "blablabla" 'list)) 

和工作正常。逸岸(car example)返回#\ b

但如果我試試這個:

(defun myfun (string) ((setf example (coerce string 'list)))) 

(myfun "blablabla") 

我沒有得到相同的!

我該如何解決?

回答

2

Remoe圍繞在defun定義的SETF額外的括號:

(defun myfun (string) 
    (setf example (coerce string 'list))) 

現在你會得到相同的。請注意,外括號有意義。在Lisp中,無論是引用,還是必須是函數調用。如果在這種情況下第一個元素是一個列表,那麼它不能是調用的函數,因此是錯誤。

+0

哦!太好了!多麼愚蠢的錯誤......這讓我瘋狂!感謝您的耐心等待! – marchetto91