我有以下类型:
type Rating = (String, Int)
type Film = (String, String, Int, [Rating])
testDatabase :: [Film]
testDatabase = [("Director 1","Film 1",2012,[("TestRat",8)]),("Director 2","Film 2",2,[])]
我需要找出导演的平均评分是基于他们所有电影的总和,然后是他们所有评分的总和。我真的不知道如何处理这个问题,我发现仅仅获得电影中元组的平均值就已经够难了,更不用说通过所有这些元组来做到这一点了。
我计算平均值的代码:
filmRating :: [(String,Int)] -> Float
filmRating ratings = average (map snd ratings)
average ratings = realToFrac (sum ratings) / genericLength ratings