2013-08-07 24 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)答案;) –

相關問題