Operations on vectors
In mathematics, an n-dimensional vector is a list of numbers of
length n. For example, [2,5,12]
is a
3-dimensional vector, and [45,27,3,-4,6]
is a
5-dimensional vector. One of the basic operations on vectors is
scalar multiplication. In this operation, every element of a
vector is multiplied by some number. For example, if we scalar
multiply the 3-dimensional vector [2,7,4]
by 3 the
result is the 3-dimensional vector [6,21,12]
. Write
a 3-place predicate scalarMult
whose first argument
is an integer, whose second argument is a list of integers, and
whose third argument is the result of scalar multiplying the
second argument by the first. For example, the query
scalarMult(3,[2,7,4],Result)
should yield
Result = [6,21,12].
Hint
Another fundamental operation on vectors is the dot
product. This operation combines two vectors of the same
dimension and yields a number as a result. The operation is
carried out as follows: the corresponding elements of the two
vectors are multiplied, and the results added. For example, the
dot product of [2,5,6]
and [3,4,1]
is
6+20+6, that is, 32. Write a 3-place predicate dot whose first
argument is a list of integers, whose second argument is a list
of integers of the same length as the first, and whose third
argument is the dot product of the first argument with the
second. For example, the query
dot([2,5,6],[3,4,1],Result)
should yield
Result = 32
.
Hint