我最近在学习Prolog,我想出了一个问题。
我怎么说:
任何员工在Prolog条款中开车,散步,乘车或飞行?
“任何”是我遇到问题的地方。
这是我的思考过程。
Employee(tom). %tom is an employee (fact)
drives(X) :- Employee(X).
walks(X) :- Employee(X).
rides(X) :- Employee(X).
flies(X) :- Employee(X).
这是正确的做法吗?
答案 0 :(得分:1)
我认为这是相反的方式:
employee(X):- drives(X).
employee(X):- walks(X).
employee(X):- rides(X).
employee(X):- flies(X).
drives
,walks
等的事实
无论哪个员工,其中一个必须坚持。如果没有,则employee(X)
失败。
这就是这个Prolog数据库下的的含义,“任何员工都会飞,乘坐等等。”
您所写的内容意味着,X
employee(X)
保持drives(X)
,walks(X)
,{{1}}等等,也会保留。即“任何员工都会走路,开车,骑车,飞行”。 (当然,谓词必须以小写字母开头)。