## Ex 1.2 ```Ocaml # let sum n = if n < 0 then invalid_arg "n<0" else let rec sumrc n = if n=0 then 0 else n + sum(n-1) in sumrc n;; val sum : int -> int = (*Correction*) let sigma f n = if n<0 then invalid_arg "n<0" else let rec sig = function | 0 -> f0 | n -> fn + sig (n-1) in sig n;; val sigma: (int -> int) -> int -> int = ``` ## Ex 2.1 ``` # let map arg list = if list = [] then 0 else let e::t = list in