令第三部分;:第11章sua| Prolog数据元素 11.1.1类型名 typeName interfaceName classQualifiedDomainName domainName className, domainName classqualifiedDomainNa me className lowercaseldentifier interfaceName lowercaseldentifier 这里, interfaceName是一个接口 名, domainName是一个值域 domainName 名,Css№ame是一个类名。 lowercaseldentifier 2004.11.3 A|程序设计
第三部分:第11章 Visual Prolog数据元素 2004.11.3 AI程序设计 6 11.1.1 类型名 typeName: interfaceName domainName classQualifiedDomainNa me interfaceName : lowercaseIdentifier domainName : lowercaseIdentifier classQualifiedDomainName : className :: domainName className : lowercaseIdentifier 这里,interfaceName是一个接口 名,domainName是一个值域 名,className是一个类名
令第三部分;:第11章sua| Prolog数据元素 11.1.1类型名 举例 domains newDomain 1= existing domain new Domain2 myInterface 在本例中,论域名是 existingDomain,接 口名 myInterface用来定义新的论域。 2004.11.3 A|程序设计
第三部分:第11章 Visual Prolog数据元素 2004.11.3 AI程序设计 7 11.1.1 类型名 举例 domains newDomain1 = existingDomain. newDomain2 = myInterface. 在本例中,论域名是existingDomain,接 口名myInterface用来定义新的论域
令第三部分;:第11章sua| Prolog数据元素 11.1.2复合论域 复合论域( Compound domains),也称作代数数据类型,用于 表示列表、树和其它树形结构的数值。在其简单形式中,复合论域用于 代表结构和枚举数值。复合论域可以递归定义,也可以相互或间接递归。 compounddomain alignment-opt functorAlternative-semicolon-sep-list alignment align integra/ConstantExpression 这里, integralConstantExpression是一个表达式,它必须是在编 译时间赋为整数。 2004.11.3 A|程序设计
第三部分:第11章 Visual Prolog数据元素 2004.11.3 AI程序设计 8 11.1.2 复合论域 复合论域(Compound Domains),也称作代数数据类型,用于 表示列表、树和其它树形结构的数值。在其简单形式中,复合论域用于 代表结构和枚举数值。复合论域可以递归定义,也可以相互或间接递归。 compoundDomain : alignment-opt functorAlternative-semicolon-sep-list alignment : align integralConstantExpression 这里,integralConstantExpression是一个表达式,它必须是在编 译时间赋为整数
令第三部分;:第11章sua| Prolog数据元素 11.1.2复合论域 如果一个复合论域包含一个算符选项,那么它被视为结构,并且具有与C语 言中的适当结构二进制兼容的表示法。 functor/ternative functorName functorName( formalArgument-comma-sep-list -opt 这里, functorName是一个算符选项的名称,它应当是小写标识符 Forma| Argument为: formalArgument typeName argument/ame-opt argumentName可以是任意标识符,编译器忽略它。复合论域是从它们派 生岀来的引用论域的子类,否则复合论域与任何其它论域都不具有这样的子类关 系。如果一个论域作为一个等价的复合论域进行定义,那么这两个论域是同义类 型而不是子类型。意思就是说它们是同一类型的两个不同名字。 2004.11.3 A|程序设计
第三部分:第11章 Visual Prolog数据元素 2004.11.3 AI程序设计 9 11.1.2 复合论域 如果一个复合论域包含一个算符选项,那么它被视为结构,并且具有与C语 言中的适当结构二进制兼容的表示法。 functorAlternative: functorName functorName ( formalArgument-comma-sep-list-opt ) 这里, functorName是一个算符选项的名称,它应当是小写标识符。 FormalArgument为: formalArgument : typeName argumentName-opt argumentName可以是任意标识符,编译器忽略它。复合论域是从它们派 生出来的引用论域的子类,否则复合论域与任何其它论域都不具有这样的子类关 系。如果一个论域作为一个等价的复合论域进行定义,那么这两个论域是同义类 型而不是子类型。意思就是说它们是同一类型的两个不同名字
令第三部分;:第11章sua| Prolog数据元素 11.1.2复合论域 举例 domains t1 = ffo gg(integer, t1) t1是一个带有两个选项的复合论域。第一个选项是空变元算符ff。 第二个选项是两个变元的算符gg,采用一个整型数论域和论域t1自身 作为参数。因此,论域t1是递归定义的。 以下表达式是论域t1的项: f gg(77,f() gg(33,gg(44,gg(55,ff()) 2004.11.3 A|程序设计 10
第三部分:第11章 Visual Prolog数据元素 2004.11.3 AI程序设计 10 11.1.2 复合论域 举例 domains t1 = ff(); gg(integer, t1). t1是一个带有两个选项的复合论域。第一个选项是空变元算符ff。 第二个选项是两个变元的算符gg,采用一个整型数论域和论域t1自身 作为参数。因此,论域t1是递归定义的。 以下表达式是论域t1的项: ff() gg(77, ff()) gg(33, gg(44, gg(55, ff())))