Как посчитать только числовые элементы в списке (PROLOG), кроме _? - PullRequest
0 голосов
/ 30 апреля 2019

Этот код дает мне количество нулей в списке. Но если мой список [0,_,0,0,_], код говорит, что есть 5 нулей ..

Я написал что-то вроде:

count([], 0).
count([H|T], N) :-
   count(T, X),
   (  H = 0
   -> N is X+1
   ;  N is X
   ).

Как я могу исправить мою проблему?

1 Ответ

1 голос
/ 30 апреля 2019

Если вы пишете H = 0, H объединяется с 0, это будет успешным, если H равно 0 или H не объединен ни с чем. Так что вам просто нужно проверить, является ли H эквивалентным 0, используйте == вместо = .

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