列表中的球拍列表元素

时间:2012-05-24 22:17:04

标签: list racket

我有一些返回元素列表的东西,但有时元素列表也是元素列表。

这样的例子是:

(1 2 3 (4 5) (6 7 (8))) 

我似乎无法编写只使用元素将其转换为列表的函数。

(1 2 3 4 5 6 7 8)

1 个答案:

答案 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)