1

リストを非再帰的にフィルタリングしようとしていますが、どうすればよいかわかりません。簡単な例として、リスト[1、2、3、4、5、6、7]があり、それをフィルタリングして、3より大きい数値のリスト、つまり[4、5、6、 7]。

再帰的には問題なく実行できますが、ここで立ち往生しています。残念ながら、私はsmlに不慣れであり、私が考えることができる最善の方法はマップを使用することですが、マップはこれのために作成されたとは思いません。

4

2 に答える 2

2

その通りです。mapこのために作成されたものではありません。によって作成されmapたリストは、に指定されたリストと常に同じサイズになりmapます。

List.filterしかし、これのため作られました。数値が3より大きい場合にtrueを返す引数として関数を呼び出すList.filterと、目的どおりに実行されます。

于 2013-02-17T04:40:01.050 に答える
0

ヒント:foldrではなく、を使用して試してくださいmap

于 2013-02-17T16:10:02.053 に答える