2009-10-28 6 views
0

Je suis en train de faire simplement une condition dans Prolog comme ceci:Prolog conditionnelle Non évaluation

((vie == morts) -> Trans = non).

Je pensais que le code ci-dessus évaluerait comme si Life == mort, puis Trans = non, mais pour une raison quelconque ce n'est pas? Merci.

Répondre

3

Works pour moi:

?- ((Life==dead)->Trans=no). 
false. 

?- Life = dead, ((Life == dead) -> Trans=no). 
Life = dead, 
Trans = no. 

vie == mort ne sera vrai que si la vie est déjà lié à mort.

De plus, il s'agit d'une construction plutôt étrange qui est rarement nécessaire en pratique, (x -> y; z) est beaucoup plus commun.