创建Prolog谓词

创建Prolog谓词,prolog,predicates,Prolog,Predicates,-基于此,问题不够清晰,因此我在上下文中发布问题 问题就在这里,我将公布我到目前为止所做的事情和我正在努力的事情 场景(一个安静怪异的场景) 詹姆斯和维多利亚结婚了,但维多利亚爱上了柯特。虽然凯莉对亨利更感兴趣,但柯特并不爱她,因为他仍然和凯莉结婚,并且关心凯莉。亚瑟在浪漫方面倾向于维多利亚,但他与亨利竞争,亨利虽然嫁给了克里斯托,但也爱维多利亚,詹姆斯对克里斯托感到浪漫 1] 使用Prolog谓词表示此信息。仅使用两个谓词名称 这是我对此的解释 你结婚了吗([詹姆斯,维多利亚],[柯特,凯莉]

-基于此,问题不够清晰,因此我在上下文中发布问题

问题就在这里,我将公布我到目前为止所做的事情和我正在努力的事情

场景(一个安静怪异的场景) 詹姆斯和维多利亚结婚了,但维多利亚爱上了柯特。虽然凯莉对亨利更感兴趣,但柯特并不爱她,因为他仍然和凯莉结婚,并且关心凯莉。亚瑟在浪漫方面倾向于维多利亚,但他与亨利竞争,亨利虽然嫁给了克里斯托,但也爱维多利亚,詹姆斯对克里斯托感到浪漫

1] 使用Prolog谓词表示此信息。仅使用两个谓词名称

这是我对此的解释

你结婚了吗([詹姆斯,维多利亚],[柯特,凯莉],[亨利,克里斯托])

是爱([维多利亚,柯特],[凯莉,亨利],[亚瑟,维多利亚],[亨利,维多利亚],[詹姆斯,维多利亚])

对于第二个谓词,我也不确定是否应该将[Curt,Kylie]按它所说的那样放在场景中“并且仍然关心”

2] 如果两个参与者都对其他人而不是对方有浪漫倾向,那么一个已婚者就触礁了。Prolog规则如何表示此语句

我的答案

∀∃x:你结婚了吗(x,Y)∧是爱(X,Y)∨ 是爱(Y,X)→ 岩石上(x)

我对如何代表婚姻有点困惑,因为这两位参与者是婚姻的代表

3] 当一个人X爱上了另一个人,而另一个人又爱上了另一个人,爱的循环就存在了,依此类推,直到这个链条中的某个人爱上了X。假设只有一个爱的循环存在,写下序言规则,找到这个循环,并列出相关的人

我的答案

写下清单([X | A,B,C]:-

写入(X)


写列表(X,Tail)。

序言方式是将每一对表示为一个单独的事实;所有相似的事实将形成一种关系(
谓词

所以你有三个是已婚的,五个是爱的,或者六个,包括关于Curt的那一个:

is_Married(James,Victoria).
is_Married(Curt,Kylie).
is_Married(Henry,Crystal).

loves(Victoria,Curt).       % changed the name
loves(Kylie,Henry).       
loves(Arthur,Victoria).
loves(Henry,Victoria).
loves(James,Victoria).
loves(Curt,Kylie).
“如果两位参与者都对其他人而不是对方有浪漫倾向,那么结婚[年龄]就岌岌可危。”这是从英语到序言的直译:

on_the_rocks(A,B):-     % a pair of people, whose marriage is on the rocks
   is_Married(A,B), 
   loves(A,C), C \= B,
   .....

阅读一篇教程,这太基本了,不是一个有用的问题(而且你似乎忽略了上一个问题的答案).看看Amzi!inc.在Prolog中的冒险,或者现在就学习Prolog!你真的应该先系统地学习教程。谢谢你对Will Ness的清晰描述,问题3想找到参与的人,然后列出他们。我将编辑原始内容以尝试it@DrKhan我不应该只给你家的答案rk.:)这不是家庭作业,我在复习考试题目,这是练习题,但我理解