我對lisp很新,但我一直在玩它。我有幾個問題需要澄清。下面是我定義的小宏。如何根據傳入的變量調用特定的函數?
(defmacro transform (query)
'(lambda (row)
(eq (nth 1 query) (nth 0 (nth 0 row)))
)
)
我只是想知道如何指定功能在體內動態使用?說如果我想使用「+」或「 - 」功能而不是「eq」,或者甚至是我定義的另一個功能?就像我認爲可以將函數的名稱作爲參數傳遞,但顯然不起作用。當我修改傳入的列表(查詢)時,我也會得到可變的未綁定錯誤。
你有什麼想法,爲什麼這應該是一個宏而不是一個函數? – 2009-09-01 11:43:02
我已經將它改回到一個函數,它似乎工作正常。 – 2009-09-01 12:12:36