2

次のようなタプルのリストがあるとします

[(1,2),(2,1),(3,5)]

要素が類似しているが順序が異なるタプルが削除されるように関数を定義するにはどうすればよいですか? したがって、リストは次のようになります

[(1,2),(3,5)]

4

1 に答える 1

6

nubByスワップされた、またはスワップされていない等しい要素を持つ 2 つのタプルを等しいものとして比較する等価関数と共に使用します。関数を使用swapすると、これが簡単になります。

nubSwapped :: (Eq a) => [(a, a)] -> [(a, a)]
nubSwapped = nubBy $ \a b -> a == b || swap a == b
于 2013-04-19T04:11:06.110 に答える