Don't like ads? PRO users don't see any ads ;-)
Guest

Untitled

By: a guest on Apr 29th, 2012  |  syntax: None  |  size: 0.34 KB  |  hits: 10  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. Why isn't this tail-recursive?
  2. let rnd = new System.Random()
  3. let test2 = List.init 1000000 (fun _ -> rnd.Next(-50, 51))
  4.  
  5. let rec sum2 list accum =
  6.   match list with
  7.   | [] -> accum
  8.   | a::b -> sum2 b a + accum
  9.  
  10. let result = sum2 test2 0
  11.  
  12. printfn "%d" result
  13.        
  14. sum2 b a + accum
  15.        
  16. a::b -> (sum2 b a) + accum
  17.        
  18. a::b -> sum2 b (a + accum)