Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/wordpress/11.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 检查列表是否已排序_List_Prolog - Fatal编程技术网

List 检查列表是否已排序

List 检查列表是否已排序,list,prolog,List,Prolog,我试图比较整型的列表中的元素,看看它们是否有序。我正在使用Amzi 我试了几次,但都没用…:( 我知道我需要比较头部和尾部的头部似乎并不比 ordered( [] ) . ordered( [_] ) . ordered( [X,Y|Z] ) :- X =< Y , ordered( [Y|Z] ) . 有序([])。 有序的。 有序([X,Y | Z]):-X=

我试图比较
整型
列表
中的元素,看看它们是否有序。我正在使用
Amzi

我试了几次,但都没用…:(


我知道我需要比较
头部
尾部的头部

似乎并不比

ordered( []      ) .
ordered( [_]     ) .
ordered( [X,Y|Z] ) :- X =< Y , ordered( [Y|Z] ) .
有序([])。
有序的。
有序([X,Y | Z]):-X=
这里介绍了算术比较谓词:


使用
@=似乎并不比

ordered( []      ) .
ordered( [_]     ) .
ordered( [X,Y|Z] ) :- X =< Y , ordered( [Y|Z] ) .
有序([])。
有序的。
有序([X,Y | Z]):-X=
这里介绍了算术比较谓词:

使用紧凑的替代方案:

ordered(L) :- \+ ( append(_,[A,B|_], L), A > B ).
紧凑的替代方案:

ordered(L) :- \+ ( append(_,[A,B|_], L), A > B ).

与多数向上投票的解决方案相比,更有效的替代方案是比较三个元素,而不是将较大的元素追加到列表中

is_sorted([]).
is_sorted([X, Y, Z|T]) :- X =< Y, Y =< Z, is_sorted(T).
is_sorted([X, Y|T]) :- X =< Y, is_sorted(T).
已排序([])。
已排序([X,Y,Z | T]):-X=
比多数上档方案更有效,比较三种方案,而不是将较大的元素追加到列表中

is_sorted([]).
is_sorted([X, Y, Z|T]) :- X =< Y, Y =< Z, is_sorted(T).
is_sorted([X, Y|T]) :- X =< Y, is_sorted(T).
已排序([])。
已排序([X,Y,Z | T]):-X=
a打字错误:检查
@capelic和@repeat,你们是否正确,我用
=@NickeManarin进行了测试。好吧!出于好奇:你们是否在
中出现语法错误否,这是一个简单的错误…我应该在更改为
a打字错误后保存并重新向听众询问:检查
@capelic和@repeat,你们是否正确,我用
=@NickeManarin进行了测试。好吧!出于好奇:你在
中遇到语法错误了吗?不,这是一个简单的错误…我应该在更改为
后保存并重新查询侦听器,因为
已排序([8,9,2,3])。
效率也较低,因为
已排序([1,2,3,4,5]).
成功两次。
被排序([8,9,2,3])错误地成功。
效率也较低,因为
被排序([1,2,3,4,5])。
成功两次。意外的创造性方法。感谢我的大脑进行了额外的锻炼。
被排序(非列表)
成功出乎意料的创造性方法。感谢您对我的大脑进行额外的锻炼。
有序(非列表)
成功