Υǥ쥯ȥκ

(L1,L2,X) :-
        ž(L2,L4),
        _1(L1,L4,X).

_1([],_,[]) :- !.
_1([A|R1],L,[S1|R3]) :-
        _2(A,L,S1),
        _1(R1,L,R3).

_2(_,[],[]) :- !.
_2(A,[B|R2],[C|R3]) :-
        _3(A,B,C),
        _2(A,R2,R3).

_3([],[],0) :- !.
_3([A|R1],[B|R2],S) :-
        S1 is A * B,
        _3(R1,R2,S2),
        S is S1 + S2.

ž([],[],[]) :- !.
ž([[A|R]|R1],[A|R2],[R|R3]) :-
        ž(R1,R2,R3).

ž([[]|_],[]) :- !.
ž(L,[B|R1]) :-
        ž(L,B,R2),
        ž(R2,R1),!.