N不受约束时的'nth0 / 3`行为

他经过这里

如果我在SWI Prolog中键入“ nth0”查询,则结果为:

?- nth0(N,X,a).
N = 0,
X = [a|_G282] ;
N = 1,
X = [_G281, a|_G285] ;
N = 2,
X = [_G281, _G284, a|_G288] ;
... etc

但是,SWI手册说:

Errors
  type_error(integer, Index) if Index is not an integer or unbound.

因此,如果我对本文的理解是正确的(?),似乎应该触发错误而不是先前的结果。

另外,我想知道哪种行为是考虑到ISO标准的正确行为。

(我知道堆栈溢出不允许引用问题,因此,我不会要求链接到标准,但是如果我问:ISO标准是否公开可用,我希望不要违反规则?等价的RFC?)。

错误的

该谓词nth0/3不是ISO Prolog的一部分,因此没有明确的参考。但是,标准中定义了报告错误的方式和时间。特别是,由于没有充分实例化参数,因此永远不会报告类型错误SWI手册中的具体公式有些不幸。它应该阅读nth0(N, Xs, E)

N既不是变量也不是整数
type_error(integer, N)

现在N实例化会有一个限制(在这种情况下不是,但让我们假设),那么就会出现错误情况:

N是一个变量
instantiation_error

自1983年以来,谓词nth0/3就一直是DECsystem 10库的一部分listut(也写成ListUt)。最初,该定义仅打算N作为整数使用。但是,错误(如我们现在所看到的)尚不存在,并且系统只是(并且错误地)由于未实例化的变量而失败。

后来在1984年左右被Quintus Prolog采纳(并更正)。

现在,我们有一个精心设计的错误分类,它能够捕获各种错误情况之间的细微语义差异。

有关标准中谓词的更多定义。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

N不受约束时的'nth0 / 3`行为

来自分类Dev

添加const泛型时的“不受约束的泛型常量”

来自分类Dev

添加const泛型时的“不受约束的泛型常量”

来自分类Dev

VHDL;如何在受约束的数组内约束不受约束的std_logic_vector

来自分类Dev

受约束的d3.js强制显示

来自分类Dev

使用Z3从受约束的空间采样

来自分类Dev

受约束的d3.js强制显示

来自分类Dev

C ++ 14是否支持不受约束的泛型函数?

来自分类Dev

创建不受约束的数组非对称数组

来自分类Dev

VHDL:不受约束的数组和大小实例化

来自分类Dev

我如何才能不受约束地启动系统

来自分类Dev

Vivado 2016.3具有不受约束的std_logic_vector的不受约束的记录数组

来自分类Dev

ConstraintLayout - 只有一侧受约束的 match_constraint 的行为

来自分类Dev

GPflow中的Adam优化器正在处理哪种类型的参数,受约束还是不受约束?

来自分类Dev

d3-单击时触发拖动行为

来自分类Dev

底部:0-缩放时的行为异常

来自分类Dev

Stan错误:要求不受约束的变量声明。发现单纯形

来自分类Dev

使用受约束的泛型类型不受限制地传递的泛型类型

来自分类Dev

如何从函数返回不受约束的二维数组的记录

来自分类Dev

Z3py-函数k!0在求解数组变量的约束时生成

来自分类Dev

受约束的MLE与Python

来自分类Dev

奇怪的约束行为

来自分类Dev

奇怪的约束行为

来自分类Dev

写入0xB8000 /指针损坏时的行为异常

来自分类Dev

scipy.ndimage.zoom()在订单= 0时的异常行为

来自分类Dev

当行为空时mysql返回多个0列

来自分类Dev

当 max==0 时 max 和在 MySQL 中的奇怪行为

来自分类Dev

应用CSS3缩放比例时Sortable的行为不正确

来自分类Dev

从抽象基类继承时,为什么__slots__在Python 2和3中的行为不同

Related 相关文章

  1. 1

    N不受约束时的'nth0 / 3`行为

  2. 2

    添加const泛型时的“不受约束的泛型常量”

  3. 3

    添加const泛型时的“不受约束的泛型常量”

  4. 4

    VHDL;如何在受约束的数组内约束不受约束的std_logic_vector

  5. 5

    受约束的d3.js强制显示

  6. 6

    使用Z3从受约束的空间采样

  7. 7

    受约束的d3.js强制显示

  8. 8

    C ++ 14是否支持不受约束的泛型函数?

  9. 9

    创建不受约束的数组非对称数组

  10. 10

    VHDL:不受约束的数组和大小实例化

  11. 11

    我如何才能不受约束地启动系统

  12. 12

    Vivado 2016.3具有不受约束的std_logic_vector的不受约束的记录数组

  13. 13

    ConstraintLayout - 只有一侧受约束的 match_constraint 的行为

  14. 14

    GPflow中的Adam优化器正在处理哪种类型的参数,受约束还是不受约束?

  15. 15

    d3-单击时触发拖动行为

  16. 16

    底部:0-缩放时的行为异常

  17. 17

    Stan错误:要求不受约束的变量声明。发现单纯形

  18. 18

    使用受约束的泛型类型不受限制地传递的泛型类型

  19. 19

    如何从函数返回不受约束的二维数组的记录

  20. 20

    Z3py-函数k!0在求解数组变量的约束时生成

  21. 21

    受约束的MLE与Python

  22. 22

    奇怪的约束行为

  23. 23

    奇怪的约束行为

  24. 24

    写入0xB8000 /指针损坏时的行为异常

  25. 25

    scipy.ndimage.zoom()在订单= 0时的异常行为

  26. 26

    当行为空时mysql返回多个0列

  27. 27

    当 max==0 时 max 和在 MySQL 中的奇怪行为

  28. 28

    应用CSS3缩放比例时Sortable的行为不正确

  29. 29

    从抽象基类继承时,为什么__slots__在Python 2和3中的行为不同

热门标签

归档