Ich muss eine Liste in eine aufteilen, die größer als N und eine kleiner ist, während alle Nicht-Ganzzahlen ignoriert werden. Es funktioniert perfekt, außer dass es eine Ausnahme auslöst, wenn ich nicht ganze Zahlen einschließe. sehen kann jemand, was ich falsch mache bitte:Prolog-Programm zum Ausschließen einer ganzen Zahl aus der Ergebnisliste
split([],N, [],[]).
split([HeadOrig | TailOrig], N, L1, TailOrig):-
\+ integer(HeadOrig),
split(TailOrig, N, L1, TailOrig).
split([HeadOrig|TailOrig],N, [HeadOrig|Tail1],L2):-
integer(HeadOrig), HeadOrig >= N,
!,
split(TailOrig, N, Tail1, L2).
split([HeadOrig | TailOrig], N, L1, [HeadOrig | Tail2]) :-
integer(HeadOrig), HeadOrig < N,
!,
split(TailOrig, N, L1, Tail2).
OK sah ich, dass jetzt (haben Original-Code bearbeitet oben) aber es gibt jetzt nur 'falsch' zurück, wenn ich ihm eine Liste mit einem Buchstaben gebe, zB: [1,2, 'a']. Kein Fehler mehr, aber jetzt geht es nicht weiter mit der Teilung – ildsarria