我是 Prolog 的新手,我正在尝试进行选择排序。这是我所拥有的:
ssort([],[]).
ssort([M|S],L):-min(M,L),remove(M,L,N),ssort(S,N).
min(M,[M]).
min(M,[H,T]):-min(N,T),min2(M,H,N).
min2(A,A,B):-less(A,B).
min2(B,A,B):-not(less(A,B)).
less(A,B):-(A<B).
append([],B,B).
append([H|A],B,[H|AB]):-append(A,B,AB).
remove(X,L,N):-append(A,[X|B],L),append(A,B,N).
但是当我尝试这个例如:
ssort(S,[5,3,1]),write(S).
我明白false
了,无论我尝试什么。您能告诉我如何对列表进行实际排序并获得写入的结果S
吗?