Не уверены в предупреждении об одноэлементной переменной и ошибке несвязанной переменной - PullRequest
0 голосов
/ 25 апреля 2018

Написание рекурсивного правила Пролога count3(L, P, Z, N), где L - список целых чисел, P - количество положительных чисел в L, Z - количество нулей в L;N - это число отрицательных чисел в L.

count3(L, P, Z, N) :-
   count3(L, O, O, O, P, Z, N).

count3([], P, Z, N, P, Z, N).
count3( [X|L], A, B, C, P, Z, N) :-
   tick(X,A,B,C,A1,B1,C1), 
   count3(L,A1,B1,C1,P,Z,N).

tick(X, P, Z, N, P1, Z, N) :- % positive
   X > 0,
   P1 is P+1.

tick(Z, P, Z, N, P, Z, N1) :- % negative
   X < 0,
   N1 is N+1.

tick(X, P, Z, N, P, Z1, N) :- % zero is unsigned
   X == 0,
   Z1 is Z+1.

Получение предупреждения: одноэлементные переменные [X] для тика / 7 и фатальная ошибка: несвязанная переменная в арифметическом выражении.Любая помощь приветствуется.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...