OCaml List length and reverse Recall our function for rever
OCaml : List length and reverse
Recall our function for reversing a list:
let rec reverse l = match l with
| [ ] -> [ ]
| x::xs -> reverse xs @ [x]
Using induction show that
length (reverse l) = length l
Your proof may refer to the denition of length in the previous problem. Your proof must explicitly and clearly indicate the base case you prove, the inductive case you prove and what the inductive hypothesis provides in the proof.
Each step in your proof must be accompanied by a justication describing why that step could be taken.
Solution
# let rev list = let rec aux acc = function | [] -> acc | h::t -> aux (h::acc) t in aux [] list;; val rev : \'a list -> \'a list =![OCaml : List length and reverse Recall our function for reversing a list: let rec reverse l = match l with | [ ] -> [ ] | x::xs -> reverse xs @ [x] Using OCaml : List length and reverse Recall our function for reversing a list: let rec reverse l = match l with | [ ] -> [ ] | x::xs -> reverse xs @ [x] Using](/WebImages/41/ocaml-list-length-and-reverse-recall-our-function-for-rever-1126343-1761600665-0.webp)