我有一些返回元素列表的东西,但有时元素列表也是元素列表。
这样的例子是:
(1 2 3 (4 5) (6 7 (8)))
我似乎无法编写只使用元素将其转换为列表的函数。
(1 2 3 4 5 6 7 8)
答案 0 :(得分:0)
这是原始海报提出的答案,为了这个问题的任何人的利益:
(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)