title: Why are functions in OCaml/F# not recursive by default?
body: <p>Why is it that functions in F# and OCaml (and possibly other languages) are not by default recursive?</p>
  <p>In other words, why did the language designers decide it was a good idea to explicitly make you type <code>rec</code> in a declaration like:</p>
  <pre><code>let rec foo ... = ...
  </code></pre>
  <p>and not give the function recursive capability by default?  Why the need for an explicit <code>rec</code> construct?</p>