2013-04-03 8 views
0

En prologue, est-il possible de forcer un échec? Quelque chose comme:Comment forcer un échec dans Prolog?

check(F,A,[1,2,3]) :- FAIL. 
check(F,A,_) : greater_than(F,A). 

Ceci peut être un mauvais exemple, mais quelque chose dans le sens de ceci. Donc, si elle fait correspondre un motif sur F, A, [1,2,3], alors nous arrêtons juste le processus qui unifie et retournons un faux.

+1

Voir http://stackoverflow.com/questions/3001825/what-are-the-uses-of- le-fail-predicate-in-prolog? rq = 1, esp. la dernière réponse –

+1

peut-être 'vérifier (_, _, [1,2,3]): -!, échouer. – CapelliC

Répondre

1

Prolog a un prédicat fail/0 intégré, qui échoue systématiquement. Vous avez besoin d'une coupe ! devant elle afin d'éviter en outre la concordance de la même règle check/3:

check(F,A,[1,2,3]) :- !, fail.