令第三部分:第12章 sual Prolog:程序元素 第12章Ⅵ /isual prolog程序元素 12.1项 122常量 12.3谓词 124子句 5事实 12.6评估 127程序段 本章小结 本章习题 2004.11.1 A|程序设计
第三部分:第12章 Visual Prolog 程序元素 2004.11.1 AI程序设计 1 第12章 Visual Prolog程序元素 12.1 项 12.2 常量 12.3 谓词 12.4 子句 12.5 事实 12.6 评估 12.7 程序段 本章小结 本章习题
令第三部分:第12章 sual Prolog:程序元素 12.1项 本章介绍 Visua|Poog的程序元素,内 容包括项( Terms)、常量、谓词、子句、 事实、运算、程序段等。 2004.11.1 A|程序设计
第三部分:第12章 Visual Prolog 程序元素 2004.11.1 AI程序设计 2 12.1 项 本章介绍Visual Prolog的程序元素,内 容包括项(Terms)、常量、谓词、子句、 事实、运算、程序段等
令第三部分:第12章 sual Prolog:程序元素 12.1.1项的基本概念 项有两种类型:公式 formulas和表达式 expressIons。 表达式代表数值,比如数字7;公式代表逻辑声明,比如 数字7比数字3大” 下面是项的简化定义,其中包括非法的语法结构。例 如,!十!的书写形式是不合法的。但是,相信在和语言概 念的直觉理解相结合时,使用这样的简化语法表示,在大多 数情况下对于类型系统和运算符层次结构的描述更为有利。 2004.11.1 A|程序设计
第三部分:第12章 Visual Prolog 程序元素 2004.11.1 AI程序设计 3 12.1.1 项的基本概念 项有两种类型:公式formulas和表达式expressions。 表达式代表数值,比如数字7;公式代表逻辑声明,比如 “数字7比数字3大” 。 下面是项的简化定义,其中包括非法的语法结构。例 如,! + !的书写形式是不合法的。但是,相信在和语言概 念的直觉理解相结合时,使用这样的简化语法表示,在大多 数情况下对于类型系统和运算符层次结构的描述更为有利
令第三部分:第12章 sual Prolog:程序元素 12.1.1项的基本概念 term term unaryOperator term 文字有通用类型 term binaryOperator term literal literal stringLiteral identifier characterliteral qualifiedName integerLiteral globalName rea/Litera/ memberAccess binaryLiteral predicate Ca∥ cut cut: ellipsis factvariableAssignment 2004.11.1 A|程序设计
第三部分:第12章 Visual Prolog 程序元素 2004.11.1 AI程序设计 4 12.1.1 项的基本概念 term: ( term ) unaryOperator term term binaryOperator term literal identifier qualifiedName globalName memberAccess predicateCall cut ellipsis factvariableAssignment 文字有通用类型: literal: stringLiteral characterLiteral integerLiteral realLiteral binaryLiteral cut: !
令第三部分:第12章 sual Prolog:程序元素 12.1.1项的基本概念 谓词调用 个谓词调用形式如下: predicateD∥ term( term-comma-sep-list-opt) 首项必须直接声明调用谓词的名字。就是说,首项必须 是一个谓词名,一个限定谓词名或一个成员访问。 注意,有些谓词有返回值,有些则没有返回值。如果一个 谓词有返回值,这个值就必须在上下文中使用,不能被忽 略 2004.11.1 A|程序设计
第三部分:第12章 Visual Prolog 程序元素 2004.11.1 AI程序设计 5 谓词调用 一个谓词调用形式如下: predicateCall: term ( term-comma-sep-list-opt ) 首项必须直接声明调用谓词的名字。就是说,首项必须 是一个谓词名,一个限定谓词名或一个成员访问。 注意,有些谓词有返回值,有些则没有返回值。如果一个 谓词有返回值,这个值就必须在上下文中使用,不能被忽 略。 12.1.1 项的基本概念
令第三部分:第12章 sual Prolog:程序元素 12.1.1项的基本概念 事实赋值 赋值操作符:=用于向事实变量 factVariable赋予一个 新值。项term必须被赋于一个适当类型(即与事实变量或子 类型相同的类型)的值。 factvariableAssignment factvariable:= term 2004.11.1 A|程序设计 6
第三部分:第12章 Visual Prolog 程序元素 2004.11.1 AI程序设计 6 事实赋值 赋值操作符 := 用于向事实变量factVariable赋予一个 新值。项term必须被赋于一个适当类型(即与事实变量或子 类型相同的类型)的值。 factVariableAssignment: factVariable := term 12.1.1 项的基本概念
令第三部分:第12章 sual Prolog:程序元素 2.1.2运算符 运算符( Operators)按优先层次进行组织。在规则中,下面各组中 的操作符具有相同的优先权,并且上面的操作符比下面的优先级高。就 是说,一元加减法要比乘法运算符优先级高,而乘法运算符又比加法运 算符高。圆括号可以改变运算优先级。 unaryOperator: binaryoperator: multiplicationOperator additionOperator relationoperator andoperator orOperator 2004.11.1 A|程序设计 7
第三部分:第12章 Visual Prolog 程序元素 2004.11.1 AI程序设计 7 12.1.2 运算符 运算符(Operators)按优先层次进行组织。在规则中,下面各组中 的操作符具有相同的优先权,并且上面的操作符比下面的优先级高。就 是说,一元加减法要比乘法运算符优先级高,而乘法运算符又比加法运 算符高。圆括号可以改变运算优先级。 unaryOperator: - + binaryOperator: multiplicationOperator additionOperator relationOperator andOperator orOperator
令第三部分:第12章 sual Prolog:程序元素 2.1.2运算符 12.1.2.1算术运算符 算术运算符( Arithmetic Operators)用于数字的算术运算。它们是 表达式,用表达式作为参数。它们采用根类型作为参数,并返回通用类 型的结果。(参见通用类型和根类型)所有的算术操作符都是左结合的 (left associative) multiplicationOperator: one of * div mod additionOperator: one of 2004.11.1 A|程序设计 8
第三部分:第12章 Visual Prolog 程序元素 2004.11.1 AI程序设计 8 12.1.2 运算符 12.1.2.1 算术运算符 算术运算符(Arithmetic Operators)用于数字的算术运算。它们是 表达式,用表达式作为参数。它们采用根类型作为参数,并返回通用类 型的结果。(参见通用类型和根类型)所有的算术操作符都是左结合的 (left associative)。 multiplicationOperator: one of * / div mod additionOperator: one of + -
令第三部分:第12章 sual Prolog:程序元素 2.1.2运算符 12.12.2关系运算符 关系运算符( Relational Operators)是公式,用表达式作 参数。它们从本质上是无关联的。 relationOperator: one of ><>><〓 2004.11.1 A|程序设计 9
第三部分:第12章 Visual Prolog 程序元素 2004.11.1 AI程序设计 9 12.1.2 运算符 12.1.2.2 关系运算符 关系运算符(Relational Operators)是公式,用表达式作 参数。它们从本质上是无关联的。 relationOperator: one of > = >< =
令第三部分:第12章 sual Prolog:程序元素 2.1.2运算符 12.1.23逻辑运算符 逻辑运算符( Logical Operators)主要包括逻辑“与(and)”、逻辑 “或(or)”及逻辑“非(ηot)”运算符等。逻辑“与”运算符 andoperator和逻辑“或”运算符 oroperator是公式,用公式作参数 它们是左结合的。","和"and"是同义词,";"和"or"也是同义词。 andOperator: one of and orOperator: one of i or 2004.11.1 A|程序设计 10
第三部分:第12章 Visual Prolog 程序元素 2004.11.1 AI程序设计 10 12.1.2 运算符 12.1.2.3 逻辑运算符 逻辑运算符(Logical Operators)主要包括逻辑“与(and)” 、逻辑 “或(or)”及逻辑“非(not)” 运算符等。逻辑“与”运算符 andOperator和逻辑“或”运算符orOperator是公式,用公式作参数。 它们是左结合的。 " , "和 " and "是同义词, " ; " 和" or "也是同义词。 andOperator: one of , and orOperator: one of ; or