标签: list function scheme conditional-statements
如何提取并返回列表中所有大于给定列表中的数字的数字? 我知道如何返回最大值,但这是不同的。 一个例子是(gfifty ‘(a b (c d) 1 56 67 g))到(56 67) 在上面的示例中,它返回包含大于50的值的列表。 教我高手。 :)
(gfifty ‘(a b (c d) 1 56 67 g))
(56 67)
答案 0 :(得分:3)
惯用解决方案是使用filter:
filter
(filter (lambda (x) (and (number? x) (> x 50))) '(a b (c d) 1 56 67 g)) => '(56 67)
要了解如何从头开始编写实现,请查看this答案。但如果搜索是递归的(如果我们还必须在子列表中搜索),那么研究this其他答案。