E-Modul in Prolog
Ich versuche verwenden eine bedingte Anweisung, wenn N auch etwas tun, sonst tun Sie etwas anderes.
Hier ist ein Teil von meinem code, wo ich bin, dies zu tun:
(N,Lines,1):-write(N),nl,
( mod(N,2) = 0 ->
write('Hello'),nl,write('Again Hello')
;
foo(N,Lines)
).
Aber selbst wenn ich N=6 geht es in foo(N,Lines)
ich.e else-Teil. Es ist nicht in, wenn ein Teil. Kann mir bitte jemand sagen, wo ich falsch bin?
Zum testen der Gleichheit der arithmetischen Ausdrücke verwenden
Sorry, ich Zitat eine Antwort war sachlich falsch, zumindest mit SWI-Prolog (normalerweise verwende ich eclipse, das hat mod/3).
(=:=)/2
statt (=)/2
zum Beispiel: mod(N, 2) =:= 0
.Sorry, ich Zitat eine Antwort war sachlich falsch, zumindest mit SWI-Prolog (normalerweise verwende ich eclipse, das hat mod/3).
InformationsquelleAutor | 2014-09-25
Du musst angemeldet sein, um einen Kommentar abzugeben.
Anstatt, Sie zu schreiben, als
mod(N,2) = 0
schreiben0 is mod(N,2)
oder0 =:= mod(N,2)
(Wie mat sagte in den Kommentaren)Wie:
und wenn
N=6
, wie in deinem Beispiel, bekomme ich:Gibt es einige Beispiele in prolog Arithmetik hier.
InformationsquelleAutor Shevliaskovic