Пролог - Аргументы недостаточно проработаны
Я пишу небольшую программу, которая подсчитывает, сколько элементов в списке не являются числами. Вот мой код:
not_number([],0).
not_number([X|T],R):-
not(number(X)),
R1 is R+1,
not_number(T,R1).
not_number([_|Tail],Result):-
not_number(Tail,Result).
Если я выполняю код следующим образом:
?- not_number([1,2,3,5], R).
Я получаю, что R = 0 (как и должно быть)
R = 0.
Но если я добавлю символ в список:
?- not_number([1,2,3,5,a], R).
тогда я получаю эту ошибку:
ERROR: not_number/2: Arguments are not sufficiently instantiated
Exception: (10) not_number([a], _G247) ?
Может кто-нибудь объяснить, что не так с кодом? Я новичок в прологе.