我需要將列表拆分爲比N大一個的列表,同時忽略任何非整數。它完美的工作,除非它包含非整數時引發異常。任何人都可以看到我在做什麼錯了,請:Prolog程序從結果列表中排除整數
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).
確定我看到現在(編輯了以上的原代碼),但現在只是返回'假',如果我給它一個字母列表例如:[1,2,'a']。沒有更多的錯誤,但現在不繼續分裂 – ildsarria