title: Ocaml - Iterative to Recursion
body: <p>For an assignment, i have written the following code in recursion. It takes a list of a vector data type, and a vector and calcuates to closeness of the two vectors. This method works fine, but i dont know how to do the recursive version.</p>
  
  <pre><code>let romulus_iter (x:vector list ) (vec:vector) = 
          let vector_close_hash = Hashtbl.create 10 in 
          let prevkey = ref 10000.0 in (* Define previous key to be a large value since we intially want to set closefactor to prev key*)
          if List.length x = 0 then
              {a=0.;b=0.}
          else
              begin
              Hashtbl.clear vector_close_hash ; 
              for i = 0 to (List.length x)-1 do
                  let vecinquestion = {a=(List.nth x i).a;b=(List.nth x i).b} in
                  let closefactor = vec_close vecinquestion vec in
                  if(closefactor &lt; !prevkey) then 
                      begin
                          prevkey := closefactor;
                          Hashtbl.add vector_close_hash closefactor vecinquestion
                      end
                  done; 
                      Hashtbl.find vector_close_hash !prevkey
              end;;
  </code></pre>
  
  <p>Any help will be much appreciated</p>