我正在閱讀Practical Common Lisp,我在REPL中玩弄關閉(第6章)。我嘗試下面的代碼,我認爲使關閉的名單,但我無法弄清楚如何所有的人都在打電話的同時REPL:如何在Lisp函數列表中調用函數?
(defparameter *fn*
(let ((count 10))
(list
#'(lambda() (incf count))
#'(lambda() (decf count))
#'(lambda() count))))
我讀過的答案,this question並試圖一些和其他一些,但似乎沒有任何工作。這是我已經嘗試過 -
CL-USER> (apply #'funcall *fn*)
; Evaluation aborted on #<CCL::TOO-MANY-ARGUMENTS #x2100B8890D>.
CL-USER> (funcall *fn*)
; Evaluation aborted on #<TYPE-ERROR #x2100B5667D>.
CL-USER> (loop for function in *fn*
(collect (funcall function)))
; Evaluation aborted on #<CCL::SIMPLE-PROGRAM-ERROR #x2100C21D4D>.
CL-USER> (map #'funcall *fn*)
; Evaluation aborted on #<CCL::TOO-FEW-ARGUMENTS #x2100B7320D>.
我在找什麼東西,將打印(11 9 10)。
感謝您的幫助!
謝謝,這是非常有益的! – lightlike 2013-04-30 23:22:54