Пролог - vs = со списками

Почему это не работает L is [1,2,3,4], и это работает: L = [1,2,3]?

Но L is 1 и L = 1 работают одинаково.

Ответ 1

is следует использовать только при оценке арифметических операций в правой части. то есть:.

X is 1 + 2 + 3

is/2 оценивает правую структуру как арифметическое выражение. Если это не действительное арифметическое выражение или число, is/2 терпит неудачу. В противном случае число, на которое равномерно распределенное арифметическое выражение объединяется с [предположительно] несвязанным левым значением.