0

私のリストは [[String]] で、[["A1","A2","A3"],["A1","A2","B1"],["A1","A2" のようになります。 、「B2」] .....]

私のコードを以下に示します

List = [[x,y,z] | x <- l1, y<- l2, z <- l3]
            where l1 = ["A1","A2","A3","B1","B2","B3","C1","C2","C3","D1","D2","D3"];
                          l2 = ....;
                          l3 = ....

compareTo :: [String] -> [String] -> Bool
compareTo x y
            |length (intersect x y) == length x     =True
            |otherwise                              =False 

removeDuplication :: [[String]] -> [[String]]
removeDuplication (x:xs) = nubBy compareTo (x:xs)

この場合、要素の順序は考慮されていないため、["A1", "A2", "A3"] と ["A2", "A3", "A1"] は重複しています。

'nubBy' および 'compareTo' 関数を使用して removeDuplication 関数を構築したいのですが、要素をリスト内の他のすべての要素と比較する方法がわかりません。

4

2 に答える 2