[ Zeroo @ 26.12.2006. 17:08 ] @
Treba definirati predikat dot/3 ciji je prvi argument lista elemenata prvog vektora, drugi argument lista drugog vektora a treci argumenat je dot-product.

dot(Vektor1,vektor2,DotProduct).


?-dot([2,5,6],[3,4,1],Rezultat).

Rezultat=32. // (2*3+5*4+6*1)
[ alexione @ 22.01.2007. 13:23 ] @
Odgovaram ti po secanju kako prolog funkcionise:

dot([], [], 0).
dot([X1|L1], [X2|L2], DP) :- dot(L1, L2, Y), DP = Y + X1 * X2.

Ovo ti radi za bilo koju dimenziju vektora.