私はどのように興味があります
(write
(make-instance 'simple-error
:format-control "A:~a ~% B:~a~%"
:format-arguments `("A" "B"))
:stream nil)
基本的なLisp機能の経験を積むために自分で実装しようとしたのですが、すぐに実現できなかったことに気づきました。直感的な実装方法として:
(defmethod my-write ((simple-error err))
(FORMAT nil (if (simple-condition-format-control err)
(simple-condition-format-control err)
"")
(simple-condition-format-arguments err)))
引数のリストを返すため、明らかに機能しません(simple-condition-format-arguments err)
。したがって、上記の例では、「B:~a」には出力する対応するパラメーターがありません。
では、このメソッドを実際にどのように実装しますか?