Prolog 序言简单的作业对我来说并不简单

Prolog 序言简单的作业对我来说并不简单,prolog,Prolog,我必须说我根本不懂这门语言,但我想通过例子来学习,所以请理解我。我得把所有的人都写出来 至少借过两件物品(通过这些人的身份证和信件) 这是一个简单的数据库:) 假设您的person/2被定义为person(唯一id,名称),并且您的借用的/2表示借用的(借用物品的id,借用者的个人id),您应该做这样的事情: borrower_by_count( Name , N ) :- person(Id,Name) , % find the person findall

我必须说我根本不懂这门语言,但我想通过例子来学习,所以请理解我。我得把所有的人都写出来 至少借过两件物品(通过这些人的身份证和信件)

这是一个简单的数据库:)


假设您的
person/2
被定义为
person(唯一id,名称)
,并且您的
借用的/2
表示
借用的(借用物品的id,借用者的个人id)
,您应该做这样的事情:

borrower_by_count( Name , N ) :-
  person(Id,Name) ,              % find the person 
  findall(X,borrowed(X,Id),Xs) , % find all the items they've borrowed
  length(Xs,N).                  % check the length:
这将适用于N的任何值。类似于
borrower\u by\u count(Name,3)。
应返回

Name = "A"
N = 3.
和<代码>借款人按计数(姓名,2)。应返回(当您返回时):

它也以另一种方式工作:
借用(“A”,N)
应该返回

Name = "A"
N = 3.

如果两个参数都未绑定,它应该依次枚举每个人以及他们借用的物品数量。

添加您开始使用的代码。这就是我解决了其他4个作业的要点,但我在这一个作业上停止了。我不知道如何连接这两个表以及如何正确编写它。不过,StackOverflow并不是一个家庭作业帮助网站。这不是家庭作业。我只是在学习这些东西,因为我需要它。我在某个网站上找到了它,我正在努力寻找答案。这不是我无法解决的简单任务,仅此而已:)