1
次のコードは、二つのリストの交差点を生成するために使用されます。Haskellのfoldrとfoldlの
unionSet :: Eq a => [a] -> [a] -> [a]
unionSet a b = foldl (\acc x -> if elem x acc then acc else acC++ [x]) a b
なぜfoldl
機能の作業が、私はfoldr
を使用する場合、それはエラーが発生しますか? foldl
タイプ
(b -> a -> b) -> [a] -> b -> b
を有している
1.「2つのリストを交差させる」ことはできません。交差することができます。あなたのコードには、 "交差"ではなく "共用体"が記述されています。リストを使用してセットを表すことができます。しかし、ほとんどの場合、あなたはすべきではありません。 2.「コードは機能しません」 - 具体的にする。構文エラー?タイプエラー?セマンティクスエラー(結果が出ますが、間違っています)?後者の場合は、仕様が含まれています(つまり、正しいことが示されます)。 – d8d0d65b3f7cf42
[foldl/foldr query](0000306/foldl-foldr-query) – Bakuriu