我有以下问题,我应该只使用' bagof',' findall',' setoff&来按字母顺序订购仅包含字符串的列表#39; ,我不会使用任何排序算法。
以下是.pl文档的内容,我必须使用。
musico('R. Stevie Moore').
musico('Lane Steinberg').
musico('Yukio Yung').
musico('Jessie Evans').
musico('Miguel').
musico('Lucia Pamela').
musico('Shooby Taylor').
musico('Tiny Tim').
musico('The Legendary Stardust Cowboy').
这是我到目前为止所拥有的:
all_musicians([Z]) :-
findall(X, musico(X), Z).
这使得列表包含所有音乐家,但现在我似乎无法理解如何订购它。
答案 0 :(得分:2)
setof/3
是你想要的,因为它产生了一个排序的结果列表。
all_musicians(Z) :-
setof(X, musico(X), Z).