Good Day I am doing the problema of arithmetic in prolog and Yes its the dot Product I have Searched and found a mess of code that did not equal to what the book is asking me. I
Your problems are that you're using Mul
twice where you mean to use it once, and Reuslt2
doesn't exist anywhere. Probably what you mean is:
dot([], [], 0).
dot([H1|T1], [H2|T2], Result) :-
Prod is H1 * H2,
dot(T1, T2, Remaining),
Result is Prod + Remaining.
You use SWI-Prolog, so you can try :
:- use_module(library(lambda)).
my_dot(L1,L2,R) :-
foldl(\X^Y^Z^T^(T is X*Y + Z), L1,L2,0,R).