[PROLOG] parcourir des listes

Fermé
audra_38007 - 25 févr. 2009 à 23:12
 toto - 26 févr. 2009 à 13:47
Bonjour,
Je débute en prolog et j'ai un soucis car je ne trouve pas en prolog la correspondance d'une bouche for pour résoudre mon problème

En fait voilà mon problème : j'ai 2 listes L1 et L2 qui sont de cette forme :
L1=[[toto,1],[titi,2],[maison,7]..] // sous listes de 2 éléments: une chaine de caractère(un mot), un entier(qui représente le nombre d'occurence de ce mot dans le texte 1)
L2=[[mama,3],[toto,3],[voiture,4]...] // sous listes de 2 éléments: une chaine de caractère(un mot), un entier(qui représente le nombre d'occurence de ce mot dans le texte 2)

Je dois construire une liste L qui renvoie la moyenne des occurences des mots pour le texte 3 (où texte 3 est la concaténation de texte1 et texte2) est construite de la sorte :

ALGO :
Au début L initialisée à vide
Pour i=1 à longueur(L1) {
je prends l'élément d'indice i de L1 (par exemple si i=1, cela donne [toto,1])
SI cet élément appartient pas à L2 ALORS l'ajouter à L
SINON, on l'ajoute à L mais en faisant la moyenne des occurences
}
Pour j=1 à longueur(L2){
je procède pareil
}
Suppression des doublons



J'ai déjà des fonctions pour l'appartenance, la suppression de doublons. Mais je ne trouve rien sur la traduction d'une boucle FOR en porlog


Meric pour vos réponses (et pour avoir lu ce long message ;-)))

2 réponses

Justement, ce moyen est décrit dans le lien :Ainsi, pour parcourir une liste, on examine le premier élément de la liste, puis on effectue le traitement approprié sur cet élément avant d'appeler récusivement le prédicat sur le reste de la
4
Merci pour la réponse mais je le savais que la boucle for n'existe pas, mais il n'y a pas moyen de simuler cette boucle??
0