如何从方案列表中获取大于数字的值?

时间:2013-08-07 15:04:53

标签: list function scheme conditional-statements

如何提取并返回列表中所有大于给定列表中的数字的数字? 我知道如何返回最大值,但这是不同的。 一个例子是(gfifty ‘(a b (c d) 1 56 67 g))(56 67) 在上面的示例中,它返回包含大于50的值的列表。 教我高手。 :)

1 个答案:

答案 0 :(得分:3)

惯用解决方案是使用filter

(filter (lambda (x) (and (number? x) (> x 50)))
        '(a b (c d) 1 56 67 g))
=> '(56 67)

要了解如何从头开始编写实现,请查看this答案。但如果搜索是递归的(如果我们还必须在子列表中搜索),那么研究this其他答案。