gpt4 book ai didi

database - Haskell 中的电影数据库

转载 作者:搜寻专家 更新时间:2023-10-30 23:14:46 26 4
gpt4 key购买 nike

目前正在尝试解决我的 haskell 程序中的 2 个主要问题。

  1. 显示给定用户喜欢的所有电影
  2. 显示给定 Actor 在某个时间段内上映的所有电影特定时期(即在给定的开始年份和结束年份之间)

这是我目前使用的示例数据库:

type Title = String
type Cast = String
type Year = Int
type Fans = String

type Film = (Title, [Cast], Year, [Fans])
type Database = [Film]

testDatabase :: Database
testDatabase = [("Casino Royale", ["Daniel Craig", "Eva Green", "Judi Dench"], 2006, ["Garry", "Dave", "Zoe", "Kevin", "Emma"]),
("Cowboys & Aliens", ["Harrison Ford", "Daniel Craig", "Olivia Wilde"], 2011, ["Bill", "Jo", "Garry", "Kevin", "Olga", "Liz"]),
("Catch Me If You Can", ["Leonardo DiCaprio", "Tom Hanks"], 2002, ["Zoe", "Heidi", "Jo", "Emma", "Liz", "Sam", "Olga", "Kevin", "Tim"])]

数据库要大得多,但由于篇幅原因,我省略了其中的一些内容。

  • 我现在如何使用该数据库创建回答上述 2 个问题所需的函数?

最佳答案

这是对您第一个问题的简短回答。这看起来像是作业,所以你应该尝试自己解决第二个问题!

fan y = map (\(a,_,_,_) -> a) $ filter (\(_,_,_,a) -> elem y a) testDatabase

重要的部分是:

elem 测试 y 是否是列表 a 的成员 - 即电影是否在其粉丝列表中包含该用户。

filter 接受一个谓词和一个列表,并仅返回该列表中满足谓词的项目。

map 接受一个函数和一个列表,并将该函数应用于列表。这用于仅提取电影的标题。

您应该能够使用类似的方法来回答第二个问题。

关于database - Haskell 中的电影数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15789061/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com