2013-02-17 62 views
1

我試圖非遞歸地過濾列表,但我不知道如何去做它。 舉一個簡單的例子,假設我有一個列表[1,2,3,4,5,6,7],我想過濾它,所以它返回一個大於3的數字列表,即[4,5,6 ,7]。SML:非遞歸過濾列表

我可以做遞歸沒有問題,但我卡在這裏。不幸的是,我是sml的新手,我能想到的最好的方法是使用map,但我不認爲map是爲此製作的。

回答

2

你是對的:map不是爲此製作的 - map生成的列表將始終與map的列表具有相同的尺寸。

List.filter然而是爲此做出的。如果你調用List.filter作爲一個參數,如果一個數字大於3則返回true,它會按照你的意願進行。

0

提示:嘗試使用foldr而不是map