Je dois diviser une liste en une plus grande que N et une plus petite, tout en ignorant les non-entiers. Cela fonctionne parfaitement sauf qu'il lance une exception quand j'inclus des entiers non entiers. Quelqu'un peut-il voir ce que je fais mal s'il vous plaît:Programme Prolog pour exclure un entier de la liste de résultats
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 j'ai vu que maintenant (ont modifié le code ci-dessus d'origine) mais maintenant il retourne juste 'faux' si je lui donne une liste avec une lettre par exemple: [1,2, 'a']. Pas plus d'erreur, mais maintenant ne continue pas avec le fractionnement – ildsarria