Если я наберу в 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?).