如何从方案列表中返回一个列表?

时间:2018-04-01 00:56:43

标签: scheme nested-lists paradigms

我想回来 '('(animal '(name a b c) '(age 1 2 3) '(family x y z))'(name age family)。我怎么做?我正在尝试这个:

(car(apply append(cons (cadr (car list)) '())))

但是我收到了错误。

1 个答案:

答案 0 :(得分:0)

我不确定您要处理的列表是:

'('(animal '(name a b c) '(age 1 2 3) '(family x y z)) or

'(animal (name a b c) (age 1 2 3) (family x y z))

后者对我更有意义。您的(子)问题是返回包含子列表的所有第一个元素的列表。您可能需要使用递归。类似的东西:

(define get_list_of_first
    (lambda (lol)
        (if (null? lol) '()
            (cons (car (car lol)) (get_list_of_first (cdr lol)))
        )
    )
)

这是学习Scheme的一个非常基本的例子。你需要使用上面的功能继续你的任务(我猜)。玩得开心。