CS314 Assignment 7
1 OCaml Basics
(1) Write an OCaml function maxAbsoluteVal : int list → int that takes an
integer list l and returns the maximum absolute value of l. Examples:
# maxAbsoluteVal [ ] ;;
- : int = 0
# maxAbsoluteVal [1;2;3;-4];;
- : int = 4
(2) Write an OCaml function getnthdigit : int → int that gets then-th digit
of an integer.
Examples:
# getnthdigit 12345 1;;
- : int = 1
# getnthdigit 31145 5;;
- : int = 5
(3) Implement prefix sum in OCaml, psum : int list → int list. The prefix sum algorithm takes a sequence of numbers x0 , x1 , x2 , ... as input and returns a sequence of numbers y0 , y1 , y2 , ... such that y0 = x0 , y1 =
x0 + x1 , y2 = x0 + x1 + x2 and so on.
Examples:
# psum [1; 2; 0; -7] ;;
- : int list = [1; 3; 3; -4] ;;
# psum [0; 1; 2; 3] ;;
- : int list = [0; 1; 3; 6]
# psum [ ] ;;
- : int list = [ ]
Note: You are not allowed to use OCaml’s imperative features.