The Art of Prolog:Advanced Programming Techniques【译文】

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

  逻辑程序简介

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

  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).

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

时间: 2024-10-10 19:57:08

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

<Spark><Advanced Programming>

Introduction 介绍两种共享变量的方式: accumulators:聚集信息 broadcast variables:高效地分布large values 介绍对高setup costs任务的批操作,比如查询数据库时连接数据的消耗. Accumulators 当我们向Spark传送函数时(比如map()函数或给filter()的condition),他们可以使用driver program中在他们定义之外的变量.但是cluster中的每个task都get a new copy of ea

COSC1284 Programming Techniques

package Model; import error.MyException; import utils.DateTime; public class Car { private String regNo; private String make; private String model; private String driverName; private int passengerCapacity; private boolean available = false; private B

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

房价预测是我入门Kaggle的第二个比赛,参考学习了他人的一篇优秀教程:https://www.kaggle.com/serigne/stacked-regressions-top-4-on-leaderboard 通过Serigne的这篇notebook,我学习到了关于数据分析.特征工程.集成学习等等很多有用的知识,在这里感谢一下这位大佬. 本篇文章立足于Serigne的教程,将他的大部分代码实现了一遍,修正了个别小错误,也加入了自己的一些视角和思考,做了一些自认为reasonable的"改进

(转)Awesome Courses

Awesome Courses  Introduction There is a lot of hidden treasure lying within university pages scattered across the internet. This list is an attempt to bring to light those awesome courses which make their high-quality material i.e. assignments, lect

Windows Kernel Security Training Courses

http://www.codemachine.com/courses.html#kerdbg Windows Kernel Internals for Security Researchers This course takes a deep dive into the internals of the Windows kernel from a security perspective. Attendees learn about behind the scenes working of va

NI.Calibration.Executive.v3.2 4C

NI.Calibration.Executive.v3.2 4CDIMAQ.v3.1(影像撷取元件) IMAQ.v2.61 for NI-VISION Builder v2.6.1 IMAQ Vision V7.1 for LabView 7.1-ISO 1CD IMAQ Vision V7.0 for LabView 1CD IMAQ v6.0.1 For LabVIEW 1CD IMAQ.FOR.IEEE.1394.V2.0.1-ISO 1CD ■□■□■□■□■□■□■□■□■□■□■□■

附加列表

qq:365543212 Email:[email protected] PTC系列产品:PTC Pro/Mechancia 2001 2001430 for 9x_NT_2000-ISO 1CD(正式版) PTC EMX 4.0 多媒体教程 PTC EMX 3.1 专家模具基体设计练习 PTC EMX 3.0 演示教学 1CD 龙记模架 For EMX 4.x B&W Expert Profiles 2.1 for Pro/E (梁结构分析) PTC CDRS 中文教程(25MB的pdf文档)

init_mempool()

一直疑惑不知道在51中是否能使用malloc,使用malloc需要做什么准备.后来看到了内存池初始化函数,查了一下资料init_mempool()函数申请的内存空间专为calloc,free, malloc, and realloc函数使用.见下方红字. init_mempool Summary: #include <stdlib.h>void init_mempool (void xdata *p, /* start of memory pool */unsigned int size);

NI-Modulation.Toolkit.for.LabVIEW.v3.1

NI-Modulation.Toolkit.for.LabVIEW.v3.1NI-488.2.V2.3-ISO 1CD(用于开发GPIB应用方案的工业标准软件) NI-Analog.WaveForm.Editor.V1.1-ISO 1CD(仪器分析,用于创建和编辑模拟式和数字式测试信号) NI-Calibration.Executive.v3.2-ISO 4CD(集成环境检验和调整NI测量设备) NI-Circuit.Design.Suite.v10.0.Power.Pro-ISO 1CD(电路