Пролог — это vs = со списками
-
20-09-2019 - |
Вопрос
Почему это не удается L is [1,2,3,4]
, и это работает: L = [1,2,3]
?
Но L is 1
, и L = 1
оба работают одинаково.
Решение
is
следует использовать только при оценке арифметических операций в правой части.то есть:
X is 1 + 2 + 3
is/2
оценивает правую структуру как арифметическое выражение.Если это недопустимое арифметическое выражение или число, is/2
терпит неудачу.В противном случае число, до которого оценивается арифметическое выражение, унифицировано с [предположительно] несвязанным левым значением.
Не связан с StackOverflow