Common Lisp - Eine Liste, die Symbole enthalten kann, wird ausgeblendet

Dies ist # 7 von99 Lisp-Probleme: transformiere eine Liste, möglicherweise indem du Listen als Elemente in eine "flache" Liste umwandelst, indem du jede Liste durch ihre Elemente ersetzst (rekursiv). Ich habe mehrere Lösungen ausprobiert, z. B. von #2680864 odervon hier. Sie funktionieren alle, aber ich habe ein Problem, wenn ich eine Liste mit einem zitierten Element reduziere. Z.B.:

> '(a 'b c)
(A 'B C)

> '(a (quote b) c)
(A 'B C)

> (flatten '(a 'b c))
(A QUOTE B C)

Im letzteren Fall würde ich gerne bekommen:

(A 'B C)

Es scheint, dass die interne Repräsentation von 'dieser Aufgabe im Weg steht! SBCL, CLISP, ECL, ... alle verhalten sich gleich.

Antworten auf die Frage(1)

Ihre Antwort auf die Frage