Боюсь, что у Пролога нет назначения переменных, как вы привыкли, только привязка переменных.Таким образом, «операторы»
N = 1.
append([N], [2,3,4], Z).
фактически представляют собой два совершенно не связанных запроса .К счастью, желаемый эффект может быть достигнут путем объединения ваших запросов:
N = 1, append([N], [2,3,4], Z).
Если вам действительно нужна глобальная переменная, вы всегда можете использовать факт или asserta/1
для ее динамического определения.
Также обратите внимание: в будущем вы, вероятно, захотите убедиться, что вы используете is
вместо =
при работе с числами.