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初学语法结构相关推荐

  1. 数据结构与算法:02 C#语言基本语法结构

    02 C#语言基本语法结构 知识结构: 1.数据类型 第一种分类: 简单数据类型:byte.short.int.long.float.double.char.bool 组合数据类型:struct.en ...

  2. R语言用户自定义函数的语法结构、编写自定义统计值计算函数(使用ifelse结构计算均值和标准差等)、编写自定义日期格式化(format)函数(switch函数使用不同分枝格式化日期数据)、应用自定函数

    R语言用户自定义函数的语法结构.编写自定义统计值计算函数(使用ifelse结构计算均值和标准差等).编写自定义日期格式化(format)函数(switch函数使用不同分枝格式化日期数据).应用自定函数 ...

  3. FPGA之道(40)HDL的语法结构

    文章目录 前言 语法结构 省略与否请一致 范围方向请一致 端口声明请一致 参数声明请一致 映射方式请一致 代码缩进请一致 空格空行 注释编写 解释说明 段落分隔 代码保留 模块设计 确定好端口的顺序 ...

  4. python003 一 Python起步、pyhthon运行方式、语法结构、python变量

    一,python起步 二,python运行方式 三,python语法结构 1,语句块缩进 2,注释及续行   (多行注释--ctrl+?) 3,同行多个语句 4,输出语句 print('Hello', ...

  5. PHP条件语句总结,PHP 条件语句基本语法结构

    php中条件语句就if else与swicth及三目运算符了,下面我来给大家介绍这些条件语句的一些语法吧. if单分支的基本语法结构 if(条件表达式){ //执行语句; } if双分支 基本语法结构 ...

  6. PHP 数组遍历 foreach 语法结构

    来源:http://www.cnblogs.com/keta/p/6117237.html foreach 语法结构用于遍历数组. foreach() PHP foreach() 语法结构用于遍历操作 ...

  7. Tcl与Design Compiler (二)——DC综合与Tcl语法结构概述

    本文如果有错,欢迎留言更正:此外,转载请标明出处 http://www.cnblogs.com/IClearner/  ,作者:IC_learner 1.逻辑综合的概述 synthesis = tra ...

  8. Shell的基本语法结构

    Shell的基本语法结构 文章目录 Shell的基本语法结构 一.SHELL介绍 1. 编程语言分类 2. shell简介 3. shell脚本 二.变量的定义 1. 变量是什么? 2. 什么时候需要 ...

  9. php总结1 ——php简介、工作原理、运行环境、文件构成、语法结构、注释

    1.1 PHP  超文本预处理程序.实际就是制作网站的脚本程序 1.2 运行环境: wamp--windowns+apache+mySQL+php    常用于开发.学习和研究 lamp --linu ...

最新文章

  1. 【Linux】Ubuntu的一些高(sao)效(cao)率(zuo)工具
  2. 切记切记:Spring配置文件中,Component-scan无法扫描到的类中的自动装配对象无法被调用,报空指针错误。...
  3. Synchronize读脏解决
  4. 关于C语言中递归的一点点小问题
  5. 1.App瘦身经验总结
  6. 【渝粤教育】电大中专就业指导作业 题库
  7. tomcat5下jsp出现getOutputStream() has already been called for this response异常的原因和解决方法...
  8. 【Python】汉诺塔问题
  9. linux中c语言常用内嵌汇编
  10. SQL 复习二(数据查询语言)
  11. Redis-03-Redis集群的搭建
  12. Qt pri 创建使用.pri文件
  13. Jeff Atwood:软件工程已死?
  14. 萤火虫小程序_“萤火虫课堂”开课了
  15. 模块学习3:PTC052A-200串口摄像头拍照等功能编写
  16. Python —— excel 创建 复制 删除,获取最大行列
  17. 统计知识基础(三)常用构造估计量的两种方法——矩估计、最大似然估计
  18. 【c#】 MVC模式 ——《七天学会》系列学习心得
  19. 关于产品的一些思考——猎云网
  20. html5滑动删除置顶,js实现移动端向左滑动删除效果

热门文章

  1. hdu 4355 Party All the Time
  2. 虚拟环境下配置拨号接入的×××
  3. 轻松实现Web数据库的安全
  4. NASA 美国国家航空航天局开源项目列表
  5. msql查询姓名不带r的员工姓名_《MySQL数据库》关联查询
  6. 【机器人】9-10月项目疑惑
  7. ajax上传 java_使用Ajax进行文件与其他参数的上传功能(java开发)
  8. 如何理解,互联网架构“高并发”?
  9. c++ 清除list占用的内存_pytorch内存泄露-dataloader
  10. 华为harmonyOS开发者日,华为首届HarmonyOS开发者创新大赛收官