Prolog:按字母顺序排列列表
Prolog : Ordering a list alphabetically
我有以下问题,我应该只使用 '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).
这使得列表包含所有音乐家,但现在我似乎无法理解如何排序。
setof/3
是您想要的,因为它会生成经过排序的结果列表。
all_musicians(Z) :-
setof(X, musico(X), Z).
我有以下问题,我应该只使用 '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).
这使得列表包含所有音乐家,但现在我似乎无法理解如何排序。
setof/3
是您想要的,因为它会生成经过排序的结果列表。
all_musicians(Z) :-
setof(X, musico(X), Z).