Prolog没有复杂的语法,程序仅含有事实、规则和目标三种类型的语句,且都用谓词表示。
一旦给它递交必要的事实和规则之后,就使用内部的演绎推理机制自动求解程序给定的目标,而不需要在程序中列出详细的求解步骤。
1.事实(fact)
格式:〈谓词名〉 (〈项表〉).
例子:(注意末尾的.不能省略)
student(john).//约翰是学生 like(mary,music).//玛丽喜欢音乐12
2.规则(rule)一般表示对象间的因果关系、蕴含关系或对应关系
格式:〈谓词名〉(〈项表〉):-〈谓词名〉(〈项表〉){,〈谓词名〉(〈项表〉)}.
bird(X):-animal(X),has(X,feather). run:-start,step1(X),step2(X),end. 12
其中:-表示if 其左边为规则的结论,右边为前提。逗号表示and(逻辑与)
同一谓词名的事实或规则必须集中排列在一起
3.问题(question)——表示用户的询问, 它是程序运行的目标。
格式: ?-〈谓词名〉(〈项表〉){,〈谓词名〉(〈项表〉)}.
?-student(john). ?-like(mary,X). 12
例:
likes(bell,sports). likes(mary,music). likes(mary,sports). likes(jane,smith). friend(john,X):-likes(X,reading),likes(X,music). friend(john,X):-likes(X,sports),likes(X,music). ?-friend(john,Y). 则求解目标:friend(john,Y). 新目标: likes(X,reading),likes(X,music).123456789101112
prolog称无值的变量为自由变量,有值的变量为约束变量。自由变量可以被实例化成约束变量,约束变量也可以被解除值成为自由变量。
两个谓词可匹配合一, 是指两个谓词的名相同, 参量项的个数相同, 参量类型对应相同, 并且对应参量项还满足下列条件:
(1) 如果两个都是常量, 则必须完全相同。
(2) 如果两个都是约束变量, 则两个约束值必须相同。
(3) 如果其中一个是常量, 一个是约束变量, 则约束值与常量必须相同。
(4) 至少有一个是自由变量。
例:
pre1(″ob1″,″ob2″,Z) pre1(″ob1″,X ,Y)12
只有当X被约束为”ob2”且Z、Y至少有一个自由变量时它们才是匹配合一的。
当自由变量和常量合一时:常量作为变量的值
当两个自由变量合一时:共用一个存储单元
相关知识
prolog杂记
杂记
白虎(白化孟加拉虎)
中西鼠文化
从家里的宠物,看一个人是否靠谱
中国古代宠物史:从实用到宠爱的历程
古代女人画眉史
从灵禽崇拜到生态文化科普教育——生态文化视域下的满族鸟文化
【游艺民俗】清代宠物民俗史话
鼠:子鼠咬天
网址: prolog杂记 https://m.mcbbbk.com/newsview258875.html
上一篇: 算投资 |
下一篇: 我家的柯基犬不听话,怎么训练? |