こんにちはStackOverflowのコミュニティでADTリストから繰り返しの要素を取り除く、私に代わって別のかなり基本質問:質問は、いくつかの5年前に尋ねていた ハスケル - ADT
いる尋ねた「リストの中から繰り返し要素を取り除きますハスケル。私は尋ねるのに似た何かを持っています。ある程度の合併症があります。は、私はこれらのデータ型を持っていると言う:
data Library = Library {borrower :: String, book :: [Book]}
data Book = Book {title :: String, barcode :: Integer}
は、その後、私は機能を持っていると言う:
addBook :: Book -> Library -> Library
addBook book library = library {book = book : getBooks library}
はgetBooksは、単にライブラリから[ブック]を取り出す関数です。
明らかに、この関数は、Ralphが書籍の重複を借りない限り、問題ありません。それにもかかわらず、そうするならば、書籍のリストには重複があり、それは望ましくない。
現在の[書籍]を返す関数を書くにはどうすればよいですか?ただし、重複は削除されますか?私はポストの冒頭で述べた問題の方法を試しましたが、コンパイラはそれが特に[書籍]ではなく[a]であると訴えています。前の質問へ
リンク: Removing repeated elements from a list in Haskell
'nub :: Eq a => [a] - > [a]'の使い方はどうですか? 'Eq'インスタンスを提供(または派生)する必要があることに注意してください。 – Zeta