私はハスケルの初心者です。私は2つの文字列のリストを比較し、リスト間の共通要素を削除して、一意の要素を持つ新しいリストを返したいと思います。以下はHaskellの2つの文字列リスト間の共通要素を削除するには?
私が持っているコードです:上記のコードの
Prelude Data.List> let list_1 = ["apple", "orange", "apple"]
Prelude Data.List> let list_2 = ["apple"]
Prelude Data.List> let removeCommonWords xs ys = filter (\x -> x `elem` ys) xs
Prelude Data.List> removeCommonWords list_1 list_2
が出力:
["apple","apple"]
現在、filter
機能は一般的な単語をフィルタリングし、含まれている新しいリストを返しますよく使う単語。しかし、ユニークな言葉を含む新しいリストを返すようにしたい。私はフィルタ関数のための新しい正規表現を必要とすると思います。
予想される出力:
["orange"]
私はまた、次のことを試みた:
Prelude Data.List> let removeCommonWords xs ys = filter (\x -> x `elem` ys) xs
Prelude Data.List> remove ["orange", "apple", "apple"] "apple"
上記のコードの出力は次のとおりです。
["orange"]
しかし、私は2つのリストを比較したいです文字列の - リストと文字列ではありません。
は、それが働いたありがとうございます。 –
ようこそ。 – andrewnagyeb
また、 'notElem'関数もあります。 – 4castle