prolog初学语法结构
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 语言入门教程”http://www.ruanyifeng.com/blog/2019/01/prolog.html
prolog初学语法结构相关推荐
- 数据结构与算法:02 C#语言基本语法结构
02 C#语言基本语法结构 知识结构: 1.数据类型 第一种分类: 简单数据类型:byte.short.int.long.float.double.char.bool 组合数据类型:struct.en ...
- R语言用户自定义函数的语法结构、编写自定义统计值计算函数(使用ifelse结构计算均值和标准差等)、编写自定义日期格式化(format)函数(switch函数使用不同分枝格式化日期数据)、应用自定函数
R语言用户自定义函数的语法结构.编写自定义统计值计算函数(使用ifelse结构计算均值和标准差等).编写自定义日期格式化(format)函数(switch函数使用不同分枝格式化日期数据).应用自定函数 ...
- FPGA之道(40)HDL的语法结构
文章目录 前言 语法结构 省略与否请一致 范围方向请一致 端口声明请一致 参数声明请一致 映射方式请一致 代码缩进请一致 空格空行 注释编写 解释说明 段落分隔 代码保留 模块设计 确定好端口的顺序 ...
- python003 一 Python起步、pyhthon运行方式、语法结构、python变量
一,python起步 二,python运行方式 三,python语法结构 1,语句块缩进 2,注释及续行 (多行注释--ctrl+?) 3,同行多个语句 4,输出语句 print('Hello', ...
- PHP条件语句总结,PHP 条件语句基本语法结构
php中条件语句就if else与swicth及三目运算符了,下面我来给大家介绍这些条件语句的一些语法吧. if单分支的基本语法结构 if(条件表达式){ //执行语句; } if双分支 基本语法结构 ...
- PHP 数组遍历 foreach 语法结构
来源:http://www.cnblogs.com/keta/p/6117237.html foreach 语法结构用于遍历数组. foreach() PHP foreach() 语法结构用于遍历操作 ...
- Tcl与Design Compiler (二)——DC综合与Tcl语法结构概述
本文如果有错,欢迎留言更正:此外,转载请标明出处 http://www.cnblogs.com/IClearner/ ,作者:IC_learner 1.逻辑综合的概述 synthesis = tra ...
- Shell的基本语法结构
Shell的基本语法结构 文章目录 Shell的基本语法结构 一.SHELL介绍 1. 编程语言分类 2. shell简介 3. shell脚本 二.变量的定义 1. 变量是什么? 2. 什么时候需要 ...
- php总结1 ——php简介、工作原理、运行环境、文件构成、语法结构、注释
1.1 PHP 超文本预处理程序.实际就是制作网站的脚本程序 1.2 运行环境: wamp--windowns+apache+mySQL+php 常用于开发.学习和研究 lamp --linu ...
最新文章
- 【Linux】Ubuntu的一些高(sao)效(cao)率(zuo)工具
- 切记切记:Spring配置文件中,Component-scan无法扫描到的类中的自动装配对象无法被调用,报空指针错误。...
- Synchronize读脏解决
- 关于C语言中递归的一点点小问题
- 1.App瘦身经验总结
- 【渝粤教育】电大中专就业指导作业 题库
- tomcat5下jsp出现getOutputStream() has already been called for this response异常的原因和解决方法...
- 【Python】汉诺塔问题
- linux中c语言常用内嵌汇编
- SQL 复习二(数据查询语言)
- Redis-03-Redis集群的搭建
- Qt pri 创建使用.pri文件
- Jeff Atwood:软件工程已死?
- 萤火虫小程序_“萤火虫课堂”开课了
- 模块学习3:PTC052A-200串口摄像头拍照等功能编写
- Python —— excel 创建 复制 删除,获取最大行列
- 统计知识基础(三)常用构造估计量的两种方法——矩估计、最大似然估计
- 【c#】 MVC模式 ——《七天学会》系列学习心得
- 关于产品的一些思考——猎云网
- html5滑动删除置顶,js实现移动端向左滑动删除效果
热门文章
- hdu 4355 Party All the Time
- 虚拟环境下配置拨号接入的×××
- 轻松实现Web数据库的安全
- NASA 美国国家航空航天局开源项目列表
- msql查询姓名不带r的员工姓名_《MySQL数据库》关联查询
- 【机器人】9-10月项目疑惑
- ajax上传 java_使用Ajax进行文件与其他参数的上传功能(java开发)
- 如何理解,互联网架构“高并发”?
- c++ 清除list占用的内存_pytorch内存泄露-dataloader
- 华为harmonyOS开发者日,华为首届HarmonyOS开发者创新大赛收官