我一直在研究以下函数 flatten,到目前为止它仅适用于列表。我想知道是否有人可以为我提供一些关于如何让它与成对工作的见解?例如 (flatten '(a .a)) 将返回 (a a)。谢谢。
(define (flatten list)
(cond ((null? list) null)
((list? (car list)) (append (flatten (car list)) (flatten (cdr list))))
(else
(cons (car list) (flatten (cdr list))))))
最佳答案
这里有一个选项:
(define (flatten x)
(cond ((null? x) '())
((pair? x) (append (flatten (car x)) (flatten (cdr x))))
(else (list x))))
关于scheme - 在Scheme中编写flatten方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8387583/