Scheme 如何从方案中的列表列表中返回列表?

Scheme 如何从方案中的列表列表中返回列表?,scheme,nested-lists,paradigms,Scheme,Nested Lists,Paradigms,我正试图从伦敦回来 '('(动物)(名字a b c)'(年龄1 2 3)'(家庭x y z))仅'(名字年龄家庭)。我该怎么做?我正在尝试: (car(apply append(cons (cadr (car list)) '()))) 但是我得到一个错误。我不确定您要处理的列表是: '('(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

我正试图从伦敦回来
'('(动物)(名字a b c)'(年龄1 2 3)'(家庭x y z))
'(名字年龄家庭)
。我该怎么做?我正在尝试:

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

但是我得到一个错误。

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

'('(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的一个非常基本的例子。你需要使用上面的函数来继续你的作业(我猜)。玩得开心。

这是第一个,因为我的实际列表是一些loke'('(动物)(名字a b c)'(年龄12 3)'(家庭x y z))(水果(名字a b c)'(颜色x y z)(价格12 3)))。我必须返回类型的特征,例如对于水果,它将是“(名称颜色价格)没有区别。仍然是相同的子问题概念。您使用的是什么实现?您能在tio.run或ideone.com上给我们一个片段,至少定义您的数据吗?