我正在尝试修改数据库列表中的一个元素以添加到评分中,我想返回一个修改后的数据库,其中包含新元素。我知道 Haskell 有不可变的东西,但同时我不能完全掌握如何去做。
以下是类型:
data Film = Film Director Title Year Ratings
deriving (Show,Ord,Eq, Read)
testDatabase :: [Film]
我唯一的代码是:
--addRating :: Rating -> Film -> Film
--addRating rating (Film name director year ratings)= (Film name director year [(ratings : rating)])
--findFilm name = head $ filter (\(Film n _ _ _) -> n == name) testDatabase
查找电影效果很好,但我无法让 addRating 工作,即使它确实工作我仍然不明白如何将它们全部组合在一起以调用函数以返回具有元素的电影列表新的评级就可以了。