no. merge_two_list_with_calculation
このディレクトリの索引

#  Hey guys, I'm trying to write a predicate in prolog that can merge two lists into one list. For example I have
#  [4,3,3] and [1,2,3].
#  I want to be able to have [14,23,33].
#  I know how to get [1,4,2,3,3,3] but I really want [14,23,33].

'第二引数のリスト要素を10の桁、第一引数のリスト要素を1の桁として二つのリストを併合する'([],[],[]) :- !.
'第二引数のリスト要素を10の桁、第一引数のリスト要素を1の桁として二つのリストを併合する'(L,[],L) :- !.
'第二引数のリスト要素を10の桁、第一引数のリスト要素を1の桁として二つのリストを併合する'([],[M2|R2],[M3|R3]) :-
        M3 is M2 * 10,
        '第二引数のリスト要素を10の桁、第一引数のリスト要素を1の桁として二つのリストを併合する'([],R2,R3).
'第二引数のリスト要素を10の桁、第一引数のリスト要素を1の桁として二つのリストを併合する'([M1|R1],[M2|R2],[M3|R3]) :-
        M3 is M2 * 10 + M1,
        '第二引数のリスト要素を10の桁、第一引数のリスト要素を1の桁として二つのリストを併合する'(R1,R2,R3).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

'第二引数のリスト要素、第一引数のリスト要素を結合しながら併合する'([],[],[]) :- !.
'第二引数のリスト要素、第一引数のリスト要素を結合しながら併合する'(L,[],L) :- !.
'第二引数のリスト要素、第一引数のリスト要素を結合しながら併合する'([],L,L) :- !.
'第二引数のリスト要素、第一引数のリスト要素を結合しながら併合する'([A|R1],[B|R2],[C|R3]) :-
        atom_concat(A,B,C),
        '第二引数のリスト要素、第一引数のリスト要素を結合しながら併合する'(R1,R2,R3).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

merge_two_list_with_calculation([],[],[]) :- !.
merge_two_list_with_calculation(L,[],L) :- !.
merge_two_list_with_calculation([],[M2|R2],[M3|R3]) :-
        M3 is M2 * 10,
        merge_two_list_with_calculation([],R2,R3).
merge_two_list_with_calculation([M1|R1],[M2|R2],[M3|R3]) :-
        M3 is M2 * 10 + M1,
        merge_two_list_with_calculation(R1,R2,R3).