Я пытаюсь написать предикат пролога, который генерирует горизонтальную линию, используя SWI-Prolog 7. Я начал с простого генератора, на который ссылаются здесь: Простой генератор пролога
В игре вокругЯ пришел с результатом, которого я не понимаю.Если я создаю эти правила (hline должен взять две координаты x (X и A) и одну координату Y, и сгенерировать координаты X и Y горизонтальной линии в S и T:
gen(Cur, Top, Cur) :- =<(Cur, Top).
gen(Cur, Top, Next):- =<(Cur, Top), is(Cur1, +(Cur, 1)), gen(Cur1, Top, Next).
hline(X,A,Y,S,T) :- gen(X,A,S), T is Y.
Когда я запускаю этот запрос:
hline(0,5,0,X,Y).
Я получаю эти результаты. Первый - тот, который я не понимаю:
X = Y, Y = 0
X = 1,
Y = 0
X = 2,
Y = 0
X = 3,
Y = 0
X = 4,
Y = 0
X = 5,
Y = 0
Может кто-нибудь объяснить, почему первый результатX = Y, Y = 0? Я нигде не вижу, чтобы X и Y были даже в одном и том же предложении посредством объединения или сокращения ...