-2
我定義一個函數來完成重複的函數調用:爲什麼lisp函數會評估錯誤的參數?
(defun repeat (n f x)
(if (zerop n) x
(repeat ((- n 1) f (funcall f x)))))
現在我想要想申請cdr
:
(repeat (1 (function cdr) '(1 2 4 5 6 7)))
我清楚地供應n=1
,f=cdr
和x='(1 2 3 4 5 6 7)
。它應該應用cdr
一次。這是錯誤消息我得到:
Error: Funcall of 1 which is a non-function.
[condition type: TYPE-ERROR]
但我有一個funcall
的cdr
,不1
。
我使用的是Franz Allegro Lisp的免費版本。在Lisp中
不要編輯問題來添加答案,它已經在答案中。如果您需要顯示與接受的答案不同的答案,請發佈您自己的答案。 – Barmar