Lispの練習問題を探していて

Define show-list to act like Lisp's PRINT, except that it should print
square brackets instead of parentheses. (Printing to a string and
replacing parentheses doesn't count.)

Both functions should be able to print any S-expression, including
atoms.

> (show-list '(a b c))
→ [A B C]

ってのを見つけました。

これを、"ANSI Common Lisp"の第3章までの知識で解きなさい、ってんですけ
ど、オジサンの頭ではどーにもなりません。

そのものズバリでなくても、ヒントとか考え方とか教えていただけないでしょ
うか?