shuffle([], X, X). shuffle(X, [], X). shuffle([X|Y], Z, [X|W]):-shuffle(Y,Z,W),Z \= []. shuffle(Y, [X|Z], [X|W]):-shuffle(Y,Z,W),Y \= []. order([]). order([X]). order([X,Y|Z]):-X <= Y, order([Y|Z]). merge(X,Y,Z):-shuffle(X,Y,Z),order(Z). :-print('shuffle, order and merge loaded').