1

我有以下问题,我应该只使用 'bagof', 'findall', 'setoff' 来订购一个仅包含按字母顺序排列的字符串的列表,我不应该使用任何排序算法。

这是我必须列出的 .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).

这使得列表包含所有音乐家,但现在我似乎无法理解如何订购它。

4

1 回答 1

2

setof/3是你想要的,因为它会产生一个排序的结果列表。

all_musicians(Z) :- 
    setof(X, musico(X), Z).
于 2015-10-06T08:00:06.737 回答