如果我在 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?)。