В визуальном прологе:
domains
ilist=integer*
predicates
iprod(ilist, ilist, integer, integer)
clauses
iprod([], _, R, R).
iprod([X|Xs], [Y|Ys], A, R):-
M = X * Y,
Rnew = A + M,
iprod(XS, Ys, Rnew, R).
goal
iprod([1,2,3],[4,5,6], 0, R).
Результаты в 32
. Извините, никакая другая реализация Пролога не доступна под рукой.