scale that takes a real and a list of
reals and returns a list which multiples the number to every element
in the list. For example:
- scale (3.0,[1.0,2.0,3.0]) ; val it = [3.0,6.0,9.0] : real list
dot that takes two lists of real numbers
of the same length and returns the ``dot product'' (the sum of the
element-wise multiplication). For example:
- dot ([1.0, 2.0],[~3.0, 4.0]) ; val it = 5.0 : realYour program need not be well-behaved when the lists are not the same length.
magn that takes a list of real numbers
and returns the square root of the sum of the squares of the elements.
Hint, you can use dot to do most of the work.
- magn [1.0,1.0,1.0,2.0,3.0] ; val it = 4.0 : real(You will need to ``
open Math'' to make the sqrt
function available.)- project ([1.0,1.0],[2.0,0.0]); val it = [1.0,0.0] : real list
homework3 named
vector.sml.
Do the following problems about types:
You submit your program work by putting it in the homework3 directory
in your AFS class volume.
You may do all your work in this directory, or you may wish to do your
work in a different directory and copy things when correct into this
directory. In any case, you should not change anything in this
directory after the deadline, which is 4:00pm on Tuesday,
February 17th. In other words, you must be done before lecture
starts.
The homework3 directory should include the following:
vector.ml