Простая программа на языке Пролог. Получение ошибки: >/2: Аргументы недостаточно конкретизированы

Я сделал предикат Пролога posAt(List1,P,List2), который проверяет, элемент в позиции Pиз List1и List2равен:

posAt([X|Z], 1, [Y|W]) :-
   X = Y.
posAt([Z|X], K, [W|Y]) :-
   K > 1,
   Kr is K - 1,
   posAt(X, Kr, Y).

При тестировании:

?- posAt([1,2,3], X, [a,2,b]).

Я ожидал результата X = 2 , но вместо этого я получил следующую ошибку:

ОШИБКА: >/2: Аргументы недостаточно конкретизированы

Почему я получаю эту ошибку?

10
задан repeat 9 February 2016 в 06:56
поделиться