List 在prolog中绑定列表

List 在prolog中绑定列表,list,prolog,List,Prolog,我有一个排序算法,我试图调用一个列表,但我似乎只是垃圾变量。正确的方法是什么 这就是我得到的: ?- sort(list(K),Sorted). K = Sorted, Sorted = [[_3796]] 代码如下: list([[a,b,c,10],[e,f,g,2],[h,i,j,6]]). sort([],[]):- !. sort([X], [X]). sort(list([Head|Tail]),Sorted):- %code to sort, split sort, sort

我有一个排序算法,我试图调用一个列表,但我似乎只是垃圾变量。正确的方法是什么

这就是我得到的:

?- sort(list(K),Sorted).
K = Sorted, Sorted = [[_3796]] 
代码如下:

list([[a,b,c,10],[e,f,g,2],[h,i,j,6]]).

sort([],[]):- !.
sort([X], [X]).
sort(list([Head|Tail]),Sorted):- %code to sort, split sort, sort and append
我不必这样做:

?- sort( [ [a,b,c,10], [e,f,g,2], [h,i,j,6] ] , Sorted).

通常的做法是:

?- list(K),sort(K,Sorted).

list([[a,b,c,10],[e,f,g,2],[h,i,j,6]]).

sort([],[]):- !.
sort([X], [X]).
sort([Head|Tail],Sorted):- %code to sort, split sort, sort and append
你可以这样称呼它,但你必须这样做:

sort(list([Head|Tail]),Sorted):- list([Head|Tail]), %code to sort, split sort, sort and append

“调用列表”是什么意思?哦,你是想把
K
绑定到事实
列表中的嵌套列表([[a,b,c,10],[e,f,g,2],[h,i,j,6]])。
?你需要做
?-list(K),sort(K,Sorted)。
,但我认为你需要把
列表
排序
谓词中去掉。另外,
sort
谓词看起来像是在对平面列表而不是嵌套列表进行排序。你能给我看完整的代码吗?@Enigmativity我需要得到排序中的列表。排序与嵌套列表一起工作,例如:?-排序([[a,b,c,1],[d,e,f,100],[l,m,n,5]],排序)基本上我需要使用代码的人,不必把所有的列表都放进去。只需在预加载列表的情况下执行算法。