申明:此文为译文,仅供学习交流试用,请勿用作商业用途,造成一切后果本人概不负责,转载请说明。本人英语功力尚浅,翻译大多借助于翻译工具,如有失误,欢迎指正。

  逻辑程序简介

  逻辑程序是一组公理或规则,定义对象之间的关系。逻辑程序的计算是扣除该计划的后果的。一个程序定义了一组后果,这就是它的意义。逻辑编程的艺术是构建一个具有所需的含义简洁大方的方案。

  Prolog基本构造

  逻辑编程,条款和声明的基本结构,从逻辑继承。有三种基本的语句:事实,规则和查询。有一个单一的数据结构:逻辑术语。最简单的一种说法叫做事实。事实是,说明对象之间的关系成立的装置。

举个例子

  father(abraham,isaac).这一事实说,abraham是isaac的father,或者说,father的关系在abraham和isaac的个体之间成立。对于关系的另一个名称叫判断。个人的姓名被称为原子。

  同样,plus(2,3,5).表达的关系是2加3是5.

  熟悉加关系可以通过一组定义加法表的事实来实现。表的初始段是

  plus(0,0,0). plus(1,0,1).

  plus(0,1,1). plus(1,1,2).

  plus(0,2,2). plus(1,2,3).

  plus(0,3,3). plus(1,3,4).

  该表正好是一个合法的逻辑程序,将被假定为在本章中加关系的定义。整本书中使用的语法约定根据需要进行了介绍。第一是这样的约定。这是一个重要的名字。

The Art of Prolog:Advanced Programming Techniques【译文】的更多相关文章

  1. Kaggle:House Prices: Advanced Regression Techniques 数据预处理

    本博客是博主在学习了两篇关于 "House Prices: Advanced Regression Techniques" 的教程 (House Prices EDA 和 Comp ...

  2. Kaggle: House Prices: Advanced Regression Techniques

    Kaggle: House Prices: Advanced Regression Techniques notebook来自https://www.kaggle.com/neviadomski/ho ...

  3. <Spark><Advanced Programming>

    Introduction 介绍两种共享变量的方式: accumulators:聚集信息 broadcast variables:高效地分布large values 介绍对高setup costs任务的 ...

  4. sleep function error ("Advanced Programming in the UNIX Environment" Third Edition No.374)

    测试证明代码: #include <unistd.h> #include <fcntl.h> #include <time.h> #include "ap ...

  5. python advanced programming (Ⅲ)

    IO编程 IO在计算机中指Input/Output.由于程序和运行时数据是在内存中驻留,由CPU来执行,涉及到数据交换的地方,通常是磁盘.网络等,就需要IO接口. IO编程中,Stream(流)是一个 ...

  6. python advanced programming ( II )

    面向对象编程 简称OOP,是一种程序设计思想.OOP把对象作为程序的基本单元,一个对象包含了数据和操作数据的函数.数据封装.继承和多态是面向对象的三大特点. 在Python中,所有数据类型都可以视为对 ...

  7. python advanced programming ( I )

    函数式编程 函数是Python内建支持的一种封装,通过把大段代码拆成函数,通过一层一层的函数调用,就可以把复杂任务分解成简单的任务,这种分解可以称之为面向过程的程序设计.函数就是面向过程的程序设计的基 ...

  8. Kaggle比赛(二)House Prices: Advanced Regression Techniques

    房价预测是我入门Kaggle的第二个比赛,参考学习了他人的一篇优秀教程:https://www.kaggle.com/serigne/stacked-regressions-top-4-on-lead ...

  9. (转)Awesome Courses

    Awesome Courses  Introduction There is a lot of hidden treasure lying within university pages scatte ...

随机推荐

  1. 关于自己封装Web前端框架的思考和探索

    一.引言 首先这些年关于前端技术层出不穷,从最早的只用js做简单验证,到现在发现好像大前端已经无所不能了的感觉.特别是为了降低前端开发复杂度,涌现了一大批 的MVC/MVVM模式的前端框架,不停了刷新 ...

  2. Maven与Antx(整理)

    http://blog.csdn.net/ghost_t/article/details/5709640 一.Maven与Antx概况: Antx简介   在讲为什么使用maven之前我想说一下,an ...

  3. android 快捷技巧

    快捷方式 <!--[if !supportLists]-->0. Ctrl + 1 (快速修复) <!--[if !supportLists]-->1. Ctrl + D (删 ...

  4. Android中的AutoCompleteTextView的使用

    最终的效果如下: main.xml代码如下: <?xml version="1.0" encoding="utf-8"?> <LinearLa ...

  5. cookie、session、sessionid的区别

    我们都知道银行,银行的收柜台每天要接待客户存款/取款业务,可以有几种方案: 1.凭借柜台职员的记忆,由收柜台职员来为每位顾客办理存款/取款业务,单凭职员的记忆力,要记到每位顾客的相貌,并迅速这个顾客当 ...

  6. mac命令行对复杂ipa包重新签名

    最近在做ios的自动化平台,需要通过命令行安装卸载ipa包 好了问题来,别人上传的ipa包,很可能是开发签名了只能在特定手机上安装的测试ipa包,那我们如何将其安装在我们的自动化的iphone上呢? ...

  7. 部署JForum 2.1.9遇到的问题及解决方法

    1. 主要问题是出在连接数据库和创建表阶段,当我们配置好MySQL的各种参数后,创建表的时候会报错: 原因:主要是由于建表的SQL语句和MySQL的版本不一致导致的. 解决办法:简单来说,在MYSQL ...

  8. 深入了解Android中的AsyncTask

    AsyncTask,即异步任务,是Android给我们提供的一个处理异步任务的类.通过此类,可以实现UI线程和后台线程进行通讯,后台线程执行异步任务,并把结果返回给UI线程.  我们知道,Androi ...

  9. Nancy简单实战之NancyMusicStore(二):打造首页

    前言 继上一篇搭建好项目之后,我们在这一篇中将把我们NancyMusicStore的首页打造出来. 布局 开始首页之前,我们要先为我们的整个应用添加一个通用的布局页面,WebForm中母版页的概念. ...

  10. GDB中的backtrace命令

    backtrace命令,可以用于回溯函数调用栈. 例如:当出现段错误的时候,执行backtrace,可以看到是哪里的调用,产生的这个段错误.