Υǥ쥯ȥκ

findsort(_,_оݹ,P,_ͱƹ) :-
        findsetof(_,P),
        append(_оݹ,_ͱƹ,L1),
        findall(L1,P,L2),
        sort(L2,L3),
        append(_оݹ,_ͱƹ,L),
        member(L,L3).

findrsort(_,_оݹ,P,_ͱƹ) :-
        findsetof(_,P),
        append(_оݹ,_ͱƹ,L1),
        findall(L1,P,L2),
        sort(L2,L3),
        reverse(L3,L4),
        append(_оݹ,_ͱƹ,L),
        member(L,L4).

findsort(_оݹ,P,_ͱƹ) :-
        append(_оݹ,_ͱƹ,L1),
        findall(L1,P,L2),
        sort(L2,L3),
        append(_оݹ,_ͱƹ,L),
        member(L,L3).

findrsort(_оݹ,P,_ͱƹ) :-
        append(_оݹ,_ͱƹ,L1),
        findall(L1,P,L2),
        sort(L2,L3),
        reverse(L3,L4),
        append(_оݹ,_ͱƹ,L),
        member(L,L4).

findsetof(A,B,L) :-
    findall(A,B,C),
    setof(A,member(A,C),L).

findsetof(A,B) :-
    findall(A,B,C),
    setof(A,member(A,C),D),
    member(A,D).