相关疑难解决方法(0)

标准中使用了"类型"的含义?

在Prolog的ISO标准的第一部分,ISO/IEC 13211-1:1995中,"类型"的概念用于指代不同的事物.这通常会导致混淆.例如,名为IsoErrata(存档版本,)的页面声明(请注意,此页面与ISO无关):

7.12.2和8.1.2.1

关于什么是"类型"存在混淆.似乎有3个不同的组:

  • 8.1.2.1中列出的那些,也在7.12.2.b中的type_error术语中作为ValidTypes出现
  • 8.1.2.1中列出的那些,在7.12.2.c中的domain_error术语中作为ValidDomain出现
  • 仅在8.1.2.1中列出的那些

此外,7.12.2.c中有ValidDomains,未在8.1.2.1中列出,可能是错误的(例如io_mode).

8.14.3.3.f

模板需要atom_or_atom_list第三个参数的类型,但奇怪的是这里所需的错误术语是 type_error(list,Operator).这导致(见例子)

op(30,xfy,0) =====> error(type_error(list,0))

哪里type_error(atom,0)或哪个type_error(atom_or_atom_list,0)更合适(但请注意,这atom_or_atom_list不是7.12.2中列出的ValidTypes!).因此,对于ECLiPSe,我们type_error(list,Op)只选择 if Op是不正确的列表,以及 type_error(atom,Op)是否Op是任何其他非原子.

那么在哪种意义上使用"类型",以及如何处理上述混乱?

iso-prolog

8
推荐指数
1
解决办法
380
查看次数

标签 统计

iso-prolog ×1