このディレクトリの索引
http://toro.2ch.net/test/read.cgi/tech/1354393458/861
#  
#  お題:たとえば整数20010307なら21370000のように0を右側に寄せ集めた整数を返す
#  


'たとえば整数20010307なら21370000のように0を右側に寄せ集めた整数を返す'(_整数,_0を右側に寄せ集めた整数) :-
        number_chars(_整数,_整数文字ならび),
        '0を右側に寄せ集めた整数を返す'(_整数文字ならび,_0を右側に寄せ集めた整数).

'0を右側に寄せ集めた整数を返す'(_整数文字ならび,_0を右側に寄せ集めた整数) :-
        '0を右側に寄せ集めた'(_整数文字ならび,_0以外のならび,_0のならび),
        整数を返す(_0以外のならび,_0のならび,_0を右側に寄せ集めた整数).

'0を右側に寄せ集めた'([],[],[]) :- !.
'0を右側に寄せ集めた'(['0'|R],L1,['0'|R3]) :-
        '0を右側に寄せ集めた'(R,L1,R3).
'0を右側に寄せ集めた'([A|R],[A|R2],L3) :-
        '0を右側に寄せ集めた'(R,R2,L3).

整数を返す(_0以外のならび,_0のならび,_0を右側に寄せ集めた整数) :-
        append(_0以外のならび,_0のならび,_0を右側に寄せ集めたならび),
        number_chars(_0を右側に寄せ集めた整数,_0を右側に寄せ集めたならび).