prolog(programming of logic)逻辑编程
1.prolog中所有语句都以 " . " 来结束
2.write() 相当于打印命定,类似于print()
3.换行符为“nl”
换行符的用法
?- write('Hello,'), nl, write('world').
Hello,
world
true.
4.退出命令“halt”
5.常量与变量,prolog中大写开头的字母表示变量,小写开头的字母表示常量
例如:
?- write(abc).
abc
true.
?- write(Abc).
_3908
true.
6.关系与属性
关系:friend(A,B)说明A的朋友是B,但不代表B的朋友就是A
属性:male(A) 表示A是男性
7.规则
代表一种逻辑推理的规则,可以由一个结论推得另外一个结论,符号":-"代表推理关系
例如:friend(X, Y) :- friend(Y,X).表示如果friend(Y,X)是true 则friend(X,Y)也是true
如果一条规则取决于多个条件同时为true
,则条件之间使用逗号分隔。
例如:mother(X, Y) :- child(Y,X), female(X).
如果一条规则取决于某个条件为false
,则在条件之前加上\+
表示否定。
例如:onesidelove(X, Y) :- loves(X, Y), \+ loves(Y,X).
8.查询
Prolog 支持查询已经设定的条件。先设定一个脚本friend.pl
friend(john, julia).
friend(john, jack).
friend(julia, sam).
friend(julia, molly).
脚本中包含这四种关系
下面利用符号“[ ]”,先加载这个脚本,再进行查询
?-[friend]
true 代表加载成功
?-friend(john, jack). true. 代表查询到此关系
?- friend(john, sam). false.代表未查询到此关系
listing()
函数可以列出所有的朋友关系。
Who
是变量名。任意的变量名都可以,只要首字母为大写。
利用Who同样可以查询到john的朋友数量
?- friend(john, Who).
Who = julia;
Who = jack.
学自“Prolog 语言入门教程”Prolog 语言入门教程 - 阮一峰的网络日志