Effacer et ajouter des clauses dans une clause [Prolog] - Divers - Programmation
Marsh Posté le 16-01-2003 à 20:23:32
oui en utilisant les prédicats assert() pour rajouter et retract() pour enlever
exemple : assert(youpi(5,Y)),
retract(youpi(5,Y))
Il faut préalablement déclarer que ton prédicat youpi est dynamique, je ne me souviens plus de la syntaxe exacte, un truc du genre :-dynamic(youpi/2)
Marsh Posté le 16-01-2003 à 22:11:05
Osama a écrit : oui en utilisant les prédicats assert() pour rajouter et retract() pour enlever |
Je vais essayer ça, c'est vrai que je connaissais pas cette notion de dynamique
En tout cas je m'attendais pas à avoir une réponse ce soir, merci beaucoup !
Marsh Posté le 16-01-2003 à 13:23:00
Bonjour,
Je doute un peu que beaucoup de personnes ici connaissent Prolog, mais je tente quand même ma chance.
Je vais simplifier mon problème : imaginons qu'on ait les lignes de code suivantes :
fois2(X) :- youpi(X,Y),write(Y).
Je sais que cette fonction n'a que peu d'intérêt , mais c'est pour donner une base à ma question : je souhaiterais écrire un foncteur qui permette de supprimer youpi(5,Y) pour mettre par exemple youpi(10,Y) à la place.
Quels foncteurs existent-ils pour faire ça (abolish, clear, retract marchent pas...), et serait-il possible que vous me donniez un exemple ?
Merci d'avance !