[PROLOG] parcourir des listes
audra_38007
-
toto -
toto -
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 ;-)))
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 ;-)))
A voir également:
- [PROLOG] parcourir des listes
- Faire des listes déroulantes excel - Guide
- Liste des appareils connectés - Guide
- Listes déroulantes en cascade excel - Guide
- Liste des maladies et leurs traitements - Télécharger - Bureautique
- Gertrude a préparé la liste des affaires à prendre pour l'excursion. juliette a modifié cette liste en utilisant le mode suivi des modifications proposé par le traitement de texte. - Guide
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
Bonjour
La boucle for ne se traduit pas en prolog :
https://pcaboche.developpez.com/article/prolog/presentation/?page=page_4#Labsence_structures_iteratives
La boucle for ne se traduit pas en prolog :
https://pcaboche.developpez.com/article/prolog/presentation/?page=page_4#Labsence_structures_iteratives