Мне нужно переделать эту функцию с функциями высокого порядка. Я не знаю, как изменить lookupTitle
, но другой я уже изменил. Но у меня ошибка на bookAuthors
.
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
Почему?