Comment puis-je compter le nombre d'éléments dans une liste?
J'ai besoin d'écrire un petit Prologue de programme pour compter le nombre d'occurrence de chaque élément dans une liste.
numberOfRepetition(input, result)
Par exemple:
numberOfRepetition([a,b,a,d,c,a,b], X)
peut être satisfaite avec X=[a/3,b/2,d/1,c/1]
parce que a
se produit trois fois, b
se produit 2 fois et c
et d
une seule fois.
Nous n'avons pas seulement donner des réponses. Prenez votre meilleur coup, poster votre code avec tous les messages d'erreur, et nous allons l'aider à l'améliorer.
OriginalL'auteur john | 2011-06-15
Vous devez vous connecter pour publier un commentaire.
Je ne veux pas vous donner la réponse, donc je vais vous aider avec elle:
En fonction de vos efforts et de vos commentaires, je peux vous aider à obtenir votre réponse.
OriginalL'auteur Ravan
Découvrez ma réponse à la question relative à la "Comment compter le nombre d'occurrences de l'élément dans une liste en Prolog"!
Dans sa réponse, je vous présente le prédicat
list_counts/2
, qui devrait fot à vos besoins.Exemple d'utilisation:
Noter que ce prédicat utilise un peu différente de la représentation par paires clé-valeur exprimant la multiplicité: principal foncteur
(-)/2
au lieu de(/)/2
.Si possible, optez pour la représentation à l'aide de
(-)/2
pour une meilleure interopérabilité avec le standard de la bibliothèque des prédicats (commekeysort/2
).OriginalL'auteur repeat
Si vous souhaitez rechercher un élément avec max occurrences:
OriginalL'auteur ViseSystems