09/06/07 17:35:27
>>106
せっかく t104_2 から t104_3 が同一プログラムパターンできているのだから、
t104_4 も同一パターンに徹するべき。
t104_4([],[]).
t104_4([[0,_]|R1],X) :-
t104_4(R1,X).
t104_4([[C,N]|R1],[N|R2]) :-
C > 0,
t104_4(R1,R2).
その代わり、
t104(Atom,AtomX) :-
findall([0,N],for(97,N,122),L),
to_lower(Atom,Atom2),
atom_codes(Atom2,L1),
t104_2(L1,L,L2),
sort(L2,L3),
reverse(L3,L4),
t104_3(L4,L5),
atom_codes(AtomX,L5),!.
とする。多分、reverse/2 を使いたくなかったのだろうけれど。