あれ
2024/5/15 1:07:00
Prologだと4行のコードでソート作れるのヤバすぎる。
% 空リストは昇順
ordered([]).
% 要素が一つのリストは昇順
ordered([_]).
% 先頭2つの要素が昇順 かつ 2番目以降の要素が昇順のリストは昇順
ordered([X, Y|T]) :- X =< Y, ordered([Y|T]).
% 全順列のうち、昇順になっているものは、ソートされている
mysort(L, L1) :- permutation(L, L1), ordered(L1).