データベースに映画のリストがあります。
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)
私ができるようになりたいのは、私のリストからどの映画を見つけるかです。
機能 1
- 最もファンが多い
- 特定のアクター名でフィルタリングされます。
機能 2
- 総合上位5作品(ファン数別)
降順
私は現在、連携させようとしているコードのスニペットを 2 つ持っています。または、より良い解決策を見つけてください。
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)
私はこれについて完全に間違った方向に進んでいますか?
事前に助けてくれてありがとう。
編集:私が持っている追加のコード。この部分を解決するのを助けるために、私はそれを使用できないようです。何か案は?
filmsWithFan :: Fan -> [Film]
filmsWithFan givenFan = filter (isFan givenFan) testDatabase