В Common Lisp, как я могу переопределить строковое представление по умолчанию для класса CLOS, чтобы при вызовах format
или princ
печаталось что-то понятное, даже если объекты этого класса встроены в другие типы, такие как спискиили массивы?
Например, если я вызываю (format t "~a~%" x)
, когда x содержит экземпляр моего класса решения, я хочу, чтобы он печатал что-то вроде #<SOLUTION genes: #(1 2 3) scores: #(4 5) rank: 6>
вместо #<SOLUTION {BB7CD31}>
.
Пока что все, что мне удалось выяснить, это написание пользовательских функций для обработки структур печати, которые, как я знаю, будут содержать экземпляры этого класса, но это утомительно.Конечно, Лисп предоставляет какой-то способ получить эту функциональность бесплатно?