2013-08-07 23 views
0

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

+0

对于输入''(a b(100 d)1 56 67)',你期望什么结果? – GoZoner

回答

3

惯用的解决办法是使用filter

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

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

+0

感谢您的快捷方式。实现的链接确实帮助我理解它是如何工作的。 – ThisGuy

+0

@ user2165940如果这对您有帮助,请不要忘记[接受](http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work)答案;) –

相关问题