0

我最近正在学习 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).

这是一个正确的方法吗?

4

1 回答 1

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)

于 2013-04-02T20:55:26.110 回答