如何编写Prolog程序

如何编写Prolog程序,prolog,Prolog,我不知道如何为下面的场景编写Prolog程序 1. If any two person having same hobby then they like each other. 2. Every gardener likes the Sun. 我这样做了,但我不知道这是否正确 like(gardener,sun). 请帮我解决这个问题。序言规则遵循“反转的如果”模板: Head:-Goal1,…,GoalN。 表示(大致),“Head在Goal1时保持,…,GoalN全部保持” 换句话说

我不知道如何为下面的场景编写Prolog程序

1. If any two person having same hobby then  they like each other.
2. Every gardener likes the Sun.
我这样做了,但我不知道这是否正确

like(gardener,sun).
请帮我解决这个问题。

序言规则遵循“反转的如果”模板:

Head:-Goal1,…,GoalN。
表示(大致),“
Head
Goal1
时保持,…,
GoalN
全部保持”

换句话说,它的意思是,“如果
Goal1
,…,
GoalN
全部保持,那么
Head
也保持不变”

这正好符合您的第一句话,因此可以按规则进行编码:

喜欢(A,B):-%Head:-
爱好(A,霍比亚),%Goal1,
嗜好(B,嗜好B),%Goal2,
相同(霍比亚,霍比b),%Goal3,
dif(A,B)。%目标4。
%不同的人,不是同一个人
第二句话也适用于相同的模板:

喜欢(太阳):-
伊萨(A,加德纳)。
使用最自然的isA(X,Y)编码作为统一的
X=Y
,这就相当于您编写的事实。事实是没有主体的规则。

序言规则遵循“反转的如果”模板:

Head:-Goal1,…,GoalN。
表示(大致),“
Head
Goal1
时保持,…,
GoalN
全部保持”

换句话说,它的意思是,“如果
Goal1
,…,
GoalN
全部保持,那么
Head
也保持不变”

这正好符合您的第一句话,因此可以按规则进行编码:

喜欢(A,B):-%Head:-
爱好(A,霍比亚),%Goal1,
嗜好(B,嗜好B),%Goal2,
相同(霍比亚,霍比b),%Goal3,
dif(A,B)。%目标4。
%不同的人,不是同一个人
第二句话也适用于相同的模板:

喜欢(太阳):-
伊萨(A,加德纳)。

使用最自然的isA(X,Y)编码作为统一的
X=Y
,这就相当于您编写的事实。事实是没有主体的规则。

我非常感谢您的支持。再次感谢您提供所需信息。我非常感谢您的支持。再次感谢您提供所需信息。