2017-08-24 8 views
-2

私は2つのリストを持っています。一つは、それはこの1つ他のリストに基づいてリストを除外すべきですか?

a::[String] 
a = [["A1","B2","C5"],["A3","B1","C2"]] 

のようなもので、私は、私はどちらか含まれていa

の3つの要素の一つですべての要素を除外したい別のリストを持っている 、私は他のリストから除外するリストです
b :: [[String]] 
b = [["A1","B1","H5"],["A3","C2","B1"],["A1","B2","H5"],["H2","H3","B2"],["H5","B1","H4"]] 

期待される結果は次のようになります。ここでは

[["H5","B1","H4"]] 

は私のアプローチです:

excludeList ::[[String]]-> [[String]] -> [[String]] 
excludeList a b = filter (any (`elem` b)) a 

私は上記のコードはlist1の要素のいずれかを含む要素を保持します知っているが、私はnotを使用して、それを逆の方法を行う方法がわかりませんか?しかし、どこに置いても、IDEはいつも私にエラーを与えます。どうすれば修正できますか?そしてelem[[String]]タイプを処理できないようですが、どうすればいいですか? ありがとう!

+0

あなたは、エラーの原因コードとエラー自体を含める必要があります。 – user2407038

+0

あなたは 'list1'をテキストに記述しますが、コードには記述しません。入力ミスを修正してください。 – LudvigH

答えて

3

notを使用するのは正しいですが、誤って使用する可能性があります。

filter (not . (any (`elem` b))) a 

de Morgan Lawsを使用して::notfilterに渡され、既存の機能への組成物で使用されるべき

filter (all (`notElem` b)) a 
関連する問題