我是新的Prolog,我被困在这一点上。 如何获取此排序列表的负责人?
mylist(List,First) :-
sort(List, Sorted),
mylist(Sorted,First).
mylist([H|_],H).
使用[First|_]
统一排序列表:
mylist(List,First) :-
sort(List,[First|_]).
所以现在Prolog将统一sort/2
的正确操作数与[First|_]
。这意味着如果你用mylist([1,4,2,5],F)
打电话,Prolog会打电话给sort([1,4,2,5],[F|_])
。现在Prolog将对列表进行排序以[1,2,4,5]
并统一[1,2,4,5] = [F|_]
。自[1,2,4,5] = [1|[2,4,5]]
年以来取得了成功.所以F = 1
和通配符是[2,4,5]
.
请注意,仅当sort/1
的第二个参数是至少包含一个元素的列表时,谓词才会成功。
您还可以使用该First
进行进一步处理。如果你需要对排序列表的引用及其头,你可以使用:
mylist(List,First) :-
sort(List,Sorted),
Sorted = [First|_],
%% further processing with Sorted and First.