Practical Common Lisp を読んでいて、REPL のクロージャ (第 6 章) をいじっています。クロージャーのリストを作成すると思われる次のコードを試していましたが、REPL でそれらすべてを同時に呼び出す方法がわかりません。
(defparameter *fn*
(let ((count 10))
(list
#'(lambda () (incf count))
#'(lambda () (decf count))
#'(lambda () count))))
この質問への回答を読んで、いくつか試してみましたが、何もうまくいかないようです。これが私が試したことです-
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)。
ご協力いただきありがとうございます!