[Prolog] Effacer et ajouter des clauses dans une clause

Effacer et ajouter des clauses dans une clause [Prolog] - Divers - Programmation

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 :
 

Code :
  1. youpi(5,Y) .
  2. youpi(X,Y) :- A is (X+1),B is (Y*2),youpi(A,B) .


 
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 ! :hello:

Reply

Marsh Posté le 16-01-2003 à 13:23:00   

Reply

Marsh Posté le 16-01-2003 à 18:23:19    

[:yoyoz]

Reply

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)

Reply

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
 
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)


 
 
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 ! :hello:

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed