add OCaml program that use list
modify some functions to tail rec