Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
List 从结果列表中排除整数的Prolog程序_List_Prolog - Fatal编程技术网

List 从结果列表中排除整数的Prolog程序

List 从结果列表中排除整数的Prolog程序,list,prolog,List,Prolog,我需要将一个列表拆分为一个大于N的列表和一个较小的列表,同时忽略任何非整数。它工作得很好,只是当我包含非整数时会抛出异常。有人能看出我做错了什么吗 split([],N, [],[]). split([HeadOrig | TailOrig], N, L1, TailOrig):- \+ integer(HeadOrig), split(TailOrig, N, L1, TailOrig). split([HeadOrig|TailOrig],N, [HeadOrig|Tai

我需要将一个列表拆分为一个大于N的列表和一个较小的列表,同时忽略任何非整数。它工作得很好,只是当我包含非整数时会抛出异常。有人能看出我做错了什么吗

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).
split([],N,[],[])。
拆分([首端|尾端]、N、L1、尾端):-
\+整数(标题),
拆分(尾轴,N,L1,尾轴)。
拆分([HeadOrig | TailOrig],N[HeadOrig | Tail1],L2):-
整数(HeadOrig),HeadOrig>=N,
!,
拆分(尾轴,N,尾轴1,L2)。
拆分([HeadOrig | TailOrig],N,L1[HeadOrig | Tail2]):
整数(HeadOrig),HeadOrig
问题是该条款中的最后一个术语不应是
TailOrig

split([], _, [],[]).

split([HeadOrig | TailOrig], N, L1, L2):-
    \+ integer(HeadOrig),
    split(TailOrig, N, L1, L2),
    !.

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).
split([],[uu],[],[])。
拆分([首端|尾端]、N、L1、L2):-
\+整数(标题),
分体式(尾翼,N,L1,L2),
!.
拆分([HeadOrig | TailOrig],N[HeadOrig | Tail1],L2):-
整数(HeadOrig),HeadOrig>=N,
!,
拆分(尾轴,N,尾轴1,L2)。
拆分([HeadOrig | TailOrig],N,L1[HeadOrig | Tail2]):-
整数(HeadOrig),HeadOrig
好的,我现在看到了(编辑了上面的原始代码),但如果我给它一个带字母的列表,它现在只返回'false',例如:[1,2,'a']。不再出现错误,但现在不会继续拆分