喜迎
春节

Prolog笔记


1. 加载脚本

?- ['E:/SWI-Prolog/test/friend.pl']. %true

2. 教程

https://riptutorial.com/zh-CN/prolog

3. 简单的计算求解:

?- X is 3*7. %X = 21

4. CLP(约束逻辑编程)库的使用

求解方程,CLP只能处理整数运算

1
2
3
?- use_module(library(clpfd)).
?- Y #= 3+4. %Y = 7.
?- 5 #= 4+W. %W = 1.

5. 单行注释

使用”%”

6. 知识库

事实 + 规则 = 知识库。
事实是我们对这个世界直接观察的结果。规则是关于现实世界的逻辑推论。

7. 合一(unification)

找出那些使规则匹配的值。
合一有时候不是唯一的,可以通过“;”来进行追问,有时候我们可能不满足于一个答案。

8. 列表/元组

程序 = 算法 + 数据结构。 列表是变长的容器,元组是定长的容器。

1
2
3
4
5
?- (1,2,3) = (1,2,3).               %元组
yes

?- [A,B,C] = [A,B,C]. %列表
yes

9. 内置谓词

length

获取列表的长度 ?- length([1,2,3],L). %L = 3.

append

可以用来合并两个列表

1
2
?- append([1],[2],What).      %What = [1, 2].
?- append([1],W,[1,2,3]). %W = [2, 3].

member

检查某一个值是否在一个列表内

1
2
?- member(1,[1,2]).      %true.
?- member(3,[1,2]). %false.


文章作者: Crazy Boy
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Crazy Boy !
评 论
 上一篇
Markdown笔记
Markdown笔记
解决有序列表排序失败的问题,格式如下:123456781.[空格]测试文字1 [Tab]-[空格]测试文字1-1 [Tab]-[空格]测试文字1-2 2.[空格]测试文字2 [Tab]-[空格]测试文字2-1 [Tab][Tab]-[空格
2019-01-31
下一篇 
PHPExcel笔记
PHPExcel笔记
1. 设置字体和样式123$objPHPExcel->getActiveSheet()->getStyle('A1')->applyFromArray(['font'=>['bold'=>true]]);
2018-11-06
  目录
hexo