高次関数でこの関数を作り直す必要があります。 lookupTitle
を変更する方法はわかりませんが、もう一方はすでに変更されています。しかし、bookAuthors
にエラーがあります。charcter USでの語彙エラー
type Title = String
type Author = String
data Product = Book Title Author
| Video Author
| CD Title Integer Author
deriving (Eq,Show)
getTitle (Book title _) = title
getTitle (Video title ) = title
getTitle (CD title _ _) = title
getTitles l = map (\x->getTitle x) l
lookupTitle _ [] = Nothing
lookupTitle x (y:ys) | getTitle y == x = Just y
| otherwise = lookupTitle x ys
lookupTitles a b = map (\x->lookupTitle x b) a
bookAuthors l = filter author l
where author (Book _ _) = True
author _ = False
なぜですか?
さらに詳しい情報を提供する必要があります。あなたは何をしようとしていますか、どのような結果を期待していますか? –
あなたの問題は、Mikhail Glushenkov氏がインデントを付けて指摘しているように、Haskellでインデントがどのように機能するかについての次のリンクを見てください:http://en.wikibooks.org/wiki/Haskell/Indentation – HaskellElephant