При устранении неисправностей более широкого назначения для школы я обнаружил ошибку, которую я сделал, где я лечил один список предметов (стек с одним элементом), как если бы это был один элемент. Я решил свою проблему, однако, в дальнейшем тестировании я заметил что-то странное:
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. Так что по какой-либо причине один список предметов считается таким же, как один элемент, но только для неотрицательных целых чисел.
Любопытство больше всего на свете ... Кто-нибудь знает, почему это?
Спасибо!