我試圖非遞歸地過濾列表,但我不知道如何去做它。 舉一個簡單的例子,假設我有一個列表[1,2,3,4,5,6,7],我想過濾它,所以它返回一個大於3的數字列表,即[4,5,6 ,7]。SML:非遞歸過濾列表
我可以做遞歸沒有問題,但我卡在這裏。不幸的是,我是sml的新手,我能想到的最好的方法是使用map,但我不認爲map是爲此製作的。
我試圖非遞歸地過濾列表,但我不知道如何去做它。 舉一個簡單的例子,假設我有一個列表[1,2,3,4,5,6,7],我想過濾它,所以它返回一個大於3的數字列表,即[4,5,6 ,7]。SML:非遞歸過濾列表
我可以做遞歸沒有問題,但我卡在這裏。不幸的是,我是sml的新手,我能想到的最好的方法是使用map,但我不認爲map是爲此製作的。
你是對的:map
不是爲此製作的 - map
生成的列表將始終與map
的列表具有相同的尺寸。
List.filter
然而是爲此做出的。如果你調用List.filter
作爲一個參數,如果一個數字大於3則返回true,它會按照你的意願進行。
提示:嘗試使用foldr
而不是map
。