33 lines
468 B
Markdown
33 lines
468 B
Markdown
## 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 = <fun>
|
|
|
|
(*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 = <fun>
|
|
```
|
|
|
|
## Ex 2.1
|
|
```
|
|
# let map arg list =
|
|
if list = [] then 0
|
|
else
|
|
let e::t = list in
|