У меня есть список фильмов в базе данных.Как фильтровать Результаты для правильного отображения
type Database = [Film]
type Title = String
type Actor = String
type Cast = [Actor]
type Fan = String
type Fans = [Fan]
type Year = Int
type Period = (Year, Year)
type Film = (Title, Cast, Year, Fans)
Что я хочу, чтобы узнать, какой фильм из моего списка.
Функция One
- имеет наиболее Фанаты
- фильтруется определенным именем актеров.
Функция Два
- Общий топ-5 фильмов (по количеству поклонников)
По убыванию По
Я в настоящее время есть два фрагмента кода, который я либо пытаюсь сделать работу вместе. Или найти более гуманного:
inCast :: Actor -> Film -> Bool
inCast givenActor (_, cast, _, _) = any (\actor -> actor == givenActor) cast
и
import Data.List
import Data.Ord
bestFilm :: Database -> Film
bestFilm = maximumBy $ comparing (length . fans)
я буду полностью неправильный путь об этом?
Большое спасибо за любую помощь заранее.
EDIT: дополнительный код, который у меня есть. Я не могу использовать его, хотя, чтобы помочь мне решить эту часть. Любые идеи?
filmsWithFan :: Fan -> [Film]
filmsWithFan givenFan = filter (isFan givenFan) testDatabase
Это вопрос домашнего задания? Был такой же опубликованный вчера: http://stackoverflow.com/questions/15789061/film-database-in-haskell. Если это домашнее задание, пометьте его как таковой. Это также причина, по которой я просто даю вам подсказки, а не весь ответ. Это то, о чем вы, похоже, просите. – mck