Bonjour,
J'ai écris un petit programme prolog qui permet d’évaluer une expression logique très simple et basique avec quelques opérateurs (ET, OU, NON par exemple)
Je souhaiterais maintenant exécuter du code grâce a ce programme mais je ne sais pas trop comment faire.
Je suis parti dans l'idée d’écrire une commande par ligne dans un txt, lire ligne par ligne et exécuter le contenu de chaque ligne.
Par exemple :
Évalue l'expression : a ET (b OU c) en affectant les valeurs a=1, b=1, c=1. Les résultats sont dans X.
Code : Sélectionner tout - Visualiser dans une fenêtre à part eval(a*(b+c),[[a,1],[b,1],[c,1]],X).
En général : eval(ExpressionLogique,AssignationValeur,Resultats).
Je souhaiterais mettre cette ligne dans un txt et l’exécuter à partir de ce dernier (le programme étant charger via consult(eval).).
J'ai donc bien evidemment rechercher la doc, mais je n'ai pas trouver la partie execution. (http://www.swi-prolog.org/pldoc/man?section=IO)
Voila ce que j'ai tenter :
Code : Sélectionner tout - Visualiser dans une fenêtre à part open('test.txt',read,S).Ainsi ma variable S est supposée contenir le stream sur lequel je peux lire mes commandes.
Code : Sélectionner tout - Visualiser dans une fenêtre à part S = <stream>(0xb5dce0).
Ensuite j'ai cru comprendre que je pouvais lire grace a read/2 mais sans succes :
Code : Sélectionner tout - Visualiser dans une fenêtre à part read(S,F).Et pour la partie exécution je n'ai pas du tout d'idée, mais je n'arrive meme pas a lire une ligne pour le moment.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 ERROR: Arguments are not sufficiently instantiated ERROR: In: ERROR: [8] read(_9800,_9802) ERROR: [7] <user>
Je vous remercie de votre lecture.
Partager