При поиске неисправностей в большем задании для школы я обнаружил допущенную ошибку, когда обрабатывал один список элементов (стек с одним элементом), как если бы это был один элемент.Я решил свою проблему, однако в дальнейшем тестировании я заметил нечто странное:
48 ?- 1 is [1].
true.
49 ?- -1 is [-1].
ERROR: is/2: Type error: `character' expected, found `-1'
50 ?- 0.66 is [0.66].
ERROR: is/2: Type error: `character' expected, found `0.66'
Подобное поведение происходит при использовании =: = / 2 вместо is / 2.Так что по какой-то причине один список предметов считается таким же, как один предмет, но только для неотрицательных целых чисел.
Любопытство больше всего на свете ... кто-нибудь знает, почему это так?1007 * Спасибо!