要素のリストを返すものがありますが、要素のリストが要素のリストでもある場合があります。
この例は次のようになります。
(1 2 3 (4 5) (6 7 (8)))
要素だけでリストに変換するだけの関数を書くことができないようです。
(1 2 3 4 5 6 7 8)
この質問に出くわした人の利益のために、元のポスターが思いついた答えは次のとおりです。
(define (test expresssion)
(cond ((empty? expresssion) null)
((not (list? expresssion)) (list expresssion))
(else (append (test (first expresssion))
(test (rest expresssion))))))
(test '(A (B (C) D) A)) ; => '(A B C D A)