需要转换为Prolog规则的帮助吗
每个人都喜欢一份有趣又有报酬的工作需要转换为Prolog规则的帮助吗,prolog,Prolog,每个人都喜欢一份有趣又有报酬的工作 we=>喜欢(X,工作):-fun(工作),pay\u well(工作) 不确定它是否正确,我把Job作为变量是否重要 只需为另外两个谓词提供定义,您就有了一个工作程序。大致如下: likes_job(_Person, Job) :- is_fun(Job), pays_well(Job). is_fun('scuba diving instructor'). is_fun('tour guide'). pays_well('softwar
we=>喜欢(X,工作):-fun(工作),pay\u well(工作)
不确定它是否正确,我把Job作为变量是否重要 只需为另外两个谓词提供定义,您就有了一个工作程序。大致如下:
likes_job(_Person, Job) :-
is_fun(Job),
pays_well(Job).
is_fun('scuba diving instructor').
is_fun('tour guide').
pays_well('software developer').
pays_well('scuba diving instructor').
举几个例子:
?- likes_job('Peter', Job).
Job = 'scuba diving instructor' ;
false.
?- likes_job('Peter', 'software developer').
false.
?- likes_job('Peter', 'tour guide').
false.
?- likes_job('John', 'scuba diving instructor').
true.
?- likes_job(X, 'scuba diving instructor').
true.
不必定义这两个谓词,只需将它们声明为“动态”,它们现在为空(而不是不存在):
只要为另外两个谓词提供定义,您就有了一个工作程序。大致如下:
likes_job(_Person, Job) :-
is_fun(Job),
pays_well(Job).
is_fun('scuba diving instructor').
is_fun('tour guide').
pays_well('software developer').
pays_well('scuba diving instructor').
举几个例子:
?- likes_job('Peter', Job).
Job = 'scuba diving instructor' ;
false.
?- likes_job('Peter', 'software developer').
false.
?- likes_job('Peter', 'tour guide').
false.
?- likes_job('John', 'scuba diving instructor').
true.
?- likes_job(X, 'scuba diving instructor').
true.
不必定义这两个谓词,只需将它们声明为“动态”,它们现在为空(而不是不存在):
您可以将
Job
作为变量,当然,只要您希望它是一个变量(即,您的规则适用于任何作业,而不是一个特定作业)<不过,code>likes不是一个很好的名字。喜欢什么?你应该称之为更有意义的事情,也许:喜欢你的工作
。还有,X
?什么是X
?对X
有限制吗?如果一份工作很有趣而且薪水很高怎么办。那么这就是事实:喜欢你的工作(大象,工作)
。如果大象能找到工作,我想那没关系。或者,你可以把X
限制为一个人:喜欢你的工作(X,工作):-person(X),fun(工作),pay(工作)。
@lower哦,现在我明白了。感谢LOT,您可以将作业
作为变量,当然,只要您希望它是一个变量(即,您的规则适用于任何作业,而不是一个特定作业)<不过,code>likes不是一个很好的名字。喜欢什么?你应该称之为更有意义的事情,也许:喜欢你的工作
。还有,X
?什么是X
?对X
有限制吗?如果一份工作很有趣而且薪水很高怎么办。那么这就是事实:喜欢你的工作(大象,工作)
。如果大象能找到工作,我想那没关系。或者,你可以把X
限制为一个人:喜欢你的工作(X,工作):-person(X),fun(工作),pay(工作)。
@lower哦,现在我明白了。谢谢