2

一度だけ発生する要素のみを含む新しいリストを作成する方法を理解しようとしています。再帰も使えません。

これは、より大きな関数のごく一部です。2つのセットの交差を取得する関数を作成しようとしています。基本的に私はセットを組み合わせました。次に並べ替えます。次に、それをセットBと組み合わせて、そのセット内のすべての重複を取り除きます。他の誰かがもっと簡単な方法を知らない限り。

高階関数は使用できますが、再帰は使用できません。

ありがとう

編集:例:

[1,2,3,3,4,4,5,5][1,2]として出てくるはずです

4

4 に答える 4

2

この質問は以前にすでに尋ねられており、基本的には、要素の数を数え、1の数の要素のみを抽出することによってそれらをグループ化する必要があります。(おそらく'filter'を使用します)

リスト内の一意の要素のカウントを参照してください

于 2010-09-28T02:18:06.343 に答える
1

それぞれが表示される回数を追跡するために使用するデータ構造について考えてください。

于 2010-09-28T02:10:35.043 に答える
1

このヒントが十分に曖昧であることを願っています。:)

重複する要素をグループ化することを検討してください。

于 2010-09-28T01:51:47.243 に答える
1

どうですか:

concat $ filter (null . tail) $ group [1,2,3,3,4,4,5,5]
于 2010-10-19T13:50:02.807 に答える