title: Use recursion to reverse a list in Ocaml
body: <p>I am trying to use recursion to reverse a list (without mutating it) with a helper function, <strong>without</strong> matching or folding. 
  Goal:</p>
  
  <pre><code># let list1 = ["a"; "b"; "c"; "d"; "e"];;
  val list1 : string list = ["a"; "b"; "c"; "d"; "e"]
  # listreverse list1;;
  - : string list1 = ["e"; "d"; "c"; "b"; "a"]
  </code></pre>
  
  <p>My code:</p>
  
  <pre><code>let rec helper remainder reversed =  
  if remainder  = [] then reversed else List.hd remainder :: (helper (List.tl remainder) reversed);;
  
  let listreverse lst = helper lst [];;
  </code></pre>
  
  <p>However, currently this will just return the same list without reversing it. Seems like adding the head to the back of the list is my issue. Is there any minor fix I can do to make this reverse the list?</p>