Common Lisp では、CLOS クラスのデフォルトの文字列表現をオーバーライドして、そのクラスのオブジェクトがリストや配列などの他の型に埋め込まれている場合でも、CLOS クラスを呼び出したり、わかりやすいものを出力しformat
たりするにはどうすればよいでしょうか?princ
たとえば、(format t "~a~%" x)
x がソリューション クラスのインスタンスを保持しているときに呼び出すと、#<SOLUTION genes: #(1 2 3) scores: #(4 5) rank: 6>
の代わりに#<SOLUTION {BB7CD31}>
.
これまでのところ、このクラスのインスタンスを含むことがわかっている印刷構造を処理するカスタム関数を作成することしかできませんでしたが、これは面倒です。Lisp は、この機能を無料で入手する方法を提供しているのでしょうか?