Bonjour,
J'ai un petit problème,
Aprés avoir effectuer bien comme il faut son travail, j'aimerais que swiprolog m'affiche le resultat
qui est sous la forme d'une liste dont les élément sont aussi des listes.
prenons un exemple simple :
Une liste de nom :
a la base je travaille avec des chaines de caractères (c'est à dire que dans mon source, dans la base de donnée c'est écrit comme ça :
Code : Sélectionner tout - Visualiser dans une fenêtre à part [[Dupond], [Quiroule], [Suifou], [Ingstown], [Gator]]
personne(1, 'Dupond', ...).
personne(2, 'Drant', ...).
personne(3, 'Quiroule', ...).
personne(4, 'Gouache', ...).
etc
mais une fois que je veux afficher la réponse avec une simple fonction récursive, swiprolog n'utilise plus les guillemets, Ce qui est trés génant, car du coup mes noms propres deviennent des variables et ma fonction d'affichage boucle...
Exemple a la main :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 % Ecrit la reponse (liste de liste) affiche_reponses([]). affiche_reponses([Reponse|Liste_reponse]):- affiche_rep(Reponse), nl, affiche_reponses(Liste_reponse). affiche_rep([]). affiche_rep([M|L]):- write(' '),write(M), affiche_rep(L).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 ?- affiche_reponses([['Dupond',1984,3], ['Quiroule',caen, 1469], ['Suifou'], ['Ingstown'], ['Gator']]). Dupond 1984 3 Quiroule caen 1469 Suifou Ingstown Gator Yes
Alors que swiprolog lui me fait :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 [trace] ?- affiche_reponses([[Dupond], [Quiroule], [Suifou], [Ingstown], [Gator]]). Call: (7) affiche_reponses([[_G312], [_G318], [_G324], [_G330], [_G336]]) ? creep Call: (8) affiche_rep([_G312]) ? Unknown option (h for help) ...
Donc voilà mes questions :
- comment forcer l'affichage de mes noms propres ?
- y-t-il moyen d'ecrire des tabulations ? (j'ai essayer des "\t", mais il m'ecrit des [9] à la place
merci
Partager