このディレクトリの索引
#  
#  与えたリストをシャッフルするshuffle/2を実装してください。
#  
#  ?- shuffle([a,b,c], X).
#  X = [b,a,c];
#  false
#  
%  一回ずつ非決定性述語仕様で切っていくには、

shuffle(_元のカードの束,_切られたカードの束) :-
        length(_元のカードの束,_カードの枚数),
        _乱数値 is random(_カードの枚数),
        length(L0,_乱数値),
        shuffle(L0,_元のカードの束,_切られたカードの束).

shuffle(L0,_元のカードの束,_切られたカードの束) :-
        append(L0,L1,_元のカードの束),
        append(L1,L0,_切られたカードの束).
shuffle(L0,_元のカードの束,_切られたカードの束) :-
        append(L0,L1,_元のカードの束),
        append(L1,L0,_切られたカードの束1),
        shuffle(_切られたカードの束1,_切られたカードの束).