<div dir="ltr"><div class="gmail_extra"><br><br><div class="gmail_quote">On 30 September 2013 16:44, Jeff Read <span dir="ltr"><<a href="mailto:bitwize@gmail.com" target="_blank">bitwize@gmail.com</a>></span> wrote:<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div class="im"><p>
On Sep 27, 2013 2:12 PM, "Marc Feeley" <<a href="mailto:feeley@iro.umontreal.ca" target="_blank">feeley@iro.umontreal.ca</a>> wrote:</p>
<p>> Cute.  However, tail-recursion is not a feature of functional programming languages in general.  In fact, Scheme (and assembler!) are the only languages I know where tail-recursion is guaranteed.<br>
></p>
</div><p>"Functional programming" these days usually implies a strong type system, laziness, and purity. In other words it usually means "Haskell". And Haskell, afaik, does guarantee TCO, as do the ML.</p>
</blockquote><div><br></div><div>I beg to differ, although I am not prepared to quibble. FP means that the primary abstraction mechanism is the function (and I found the xkcd really annoying because it completely missed the point), than which there is no better mechanism for the separation of concerns. TCO is not required (witness CL's DO notation), nor are a statically determined types which are enforced at compile-time (e.g. every Lisp ever). And w/rt TCO, I'm not sure that concept even makes sense for a normal-order reduction system like Haskell. Normal order reduction is closer to a dataflow graph traversal than a stack machine...<br>
</div></div><div><br></div><div>david rush</div>-- <br>GPG Public key at <a href="http://cyber-rush.org/drr/gpg-public-key.txt">http://cyber-rush.org/drr/gpg-public-key.txt</a>
</div></div>