Je suis en train de droite un prédicat Prolog qui accepte un élément, une liste, et un certain nombre, et vérifie si l'article est dans la liste que nombre de fois. Par exempleproblèmes avec prédicat Prolog
count(7,[3,7],X).
retournera X=1
.
count(7,[3,7],1).
reviendriez true
C'est ce que j'ai jusqu'à présent
count_occur(A,[0|B],D).
count_occur(A,[A|C],D) :- count_occur(A,C,D1), D is D1+1.
count_occur(A,[B|C],D) :- count_occur(A,C,D).
Je suis très nouveau pour Prolog et vraiment du mal à comprendre ce paradigme de programmation. Ce que j'essaie de faire est de voir si le premier élément de la liste correspond à la valeur transmise (A), s'il incrémente D et vérifie de nouveau par rapport au reste de la liste. C'est comme ça que je le ferais en Lisp ou dans une autre langue de toute façon. Pourrait vraiment utiliser un peu d'aide, été à ceci pendant un moment et il ne clique pas juste pour moi.
Quel est le but de la première ligne? Et vous devez gérer le cas d'avoir une liste vide. –