Prolog: Одноместный элемент против одного элемента

При устранении неисправностей более широкого назначения для школы я обнаружил ошибку, которую я сделал, где я лечил один список предметов (стек с одним элементом), как если бы это был один элемент. Я решил свою проблему, однако, в дальнейшем тестировании я заметил что-то странное:

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. Так что по какой-либо причине один список предметов считается таким же, как один элемент, но только для неотрицательных целых чисел.

Любопытство больше всего на свете ... Кто-нибудь знает, почему это?

Спасибо!

5
задан The111 7 September 2011 в 05:54
поделиться