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 = # rev [\"a\" ; \"b\" ; \"c\"];; - : string list = [\"c\"; \"b\"; \"a\"]
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

Get Help Now

Submit a Take Down Notice

Tutor
Tutor: Dr Jack
Most rated tutor on our site