[Swi-Prolog] Retourner un numero d'erreur si le résultat est false

Retourner un numero d'erreur si le résultat est false [Swi-Prolog] - Divers - Programmation

Marsh Posté le 12-11-2024 à 15:50:39    

Bonjour,
 
Je voudrais retourner un numero d'erreur de swi-prolog en cas de résultat false.
 
S'il vous plait ! Si c'est possible.


Message édité par lady287 le 12-11-2024 à 15:51:35
Reply

Marsh Posté le 12-11-2024 à 15:50:39   

Reply

Marsh Posté le 12-11-2024 à 15:59:51    

En SWI-Prolog, il n'existe pas de notion native de "code d'erreur" comme dans d'autres langages, car Prolog se base sur une logique de succès/échec pour les prédicats. Cependant, il est possible de structurer un prédicat pour renvoyer un code d'erreur en cas de résultat false.
 
Voici une approche pour capturer l'échec d'un prédicat et renvoyer un code d'erreur spécifique :
 
    Définir des règles avec codes d'erreurs : Utilisez des clauses qui, en cas de réussite, retournent le résultat, et en cas d'échec, retournent un code d'erreur spécifique.
    Utiliser if-then-else avec ; pour vérifier le succès ou l’échec.
 
Voici un exemple simple :
 

Code :
  1. % Exemple de prédicat qui échoue si la condition n'est pas satisfaite
  2. mon_predicat(X, Y, Result) :-
  3.    ( X > 0, Y > 0 ->  
  4.        Result = success  
  5.    ;  
  6.        Result = erreur_code_123
  7.    ).
  8. % Exemple d'appel
  9. ?- mon_predicat(2, -1, Result).
  10. % Result = erreur_code_123.


 
Dans cet exemple, si les deux valeurs X et Y sont supérieures à 0, Result sera success. Sinon, il retourne un code d'erreur (erreur_code_123).
 
Pour des erreurs plus spécifiques, vous pouvez gérer différents codes d'erreurs selon les cas :
 

Code :
  1. mon_predicat(X, Y, Result) :-
  2.    ( X =< 0 ->  
  3.        Result = erreur_code_101  
  4.    ; Y =< 0 ->  
  5.        Result = erreur_code_102  
  6.    ;  
  7.        Result = success
  8.    ).


 
Ici, chaque cas d'échec retourne un code d'erreur différent.


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 12-11-2024 à 16:30:29    

Merci Harkonnen.
 
Cependant, c'est bien un code d'erreur de sortie de Swi-Prolog qu'il me faut.

Reply

Marsh Posté le 12-11-2024 à 17:40:04    

J'ai eu l'idée d'écrire un fichier mais ça correspond pas au résultat que je souhaiterais parce que Swi-Prolog affiche true.

Reply

Sujets relatifs:

Leave a Replay

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