09/05/30 04:20:51
>>15
% Prologの苦手とする処理ですね。長くなったので表示部分は省略します。
% 言語: IF/Prolog
modulus38([X],X,CL,CL).
modulus38(L,X,CL1,CL) :-
modulus38_1(L,L2,CL1,CL2),
modulus38(L2,X,CL2,CL).
modulus38_1([_],[],CL,CL).
modulus38_1([A,B|R1],[C|R2],CL1,CL) :-
C is (A+B) mod 10,
n番目に1を加算(C,CL1,CL2),
modulus38_1([B|R1],R2,CL2,CL).
n番目に1を加算(N,L,X) :-
append(L1,[B|R],L),
M is N-1,
length(L1,M),
B2 is B+1,
append(L1,[B2|R],X).
sum_list([],0).
sum_list([N|R],X) :- sum_list(R,Y),X is Y + N.