I am a little surprised by the "shortcomings" of Haskell mentioned in the thread.
I was under the impression that Haskell was closest to Nirvana on the usefulness vs safety graph.
In the paper "Why FP matters" - Laziness is stated as one of the two key features of FP that allows conceptual modularity! If I understand right, Laziness is not a first class stuff in OCaml - is that not right?
If I understand correctly - Not allowing side-effects allow for equational reasoning - which in turn allows you to "reason" about the program better. If I understand right - OCaml allows side effects right?
Jeff, could you please expand on the tail recursion bit - what do you mean when you say, in OCaml, "one has to write tail recursively in OCaml"?
Please note, I am still a Haskell (FP) learner - My questions above are only meant for me to understand things better.
Regards,
Kashyap
On Sat, Apr 17, 2010 at 7:12 AM, jeff p
<mutjida@gmail.com> wrote:
Hello,
One major thing I haven't seen explicitly mentioned yet in this thread
is tail recursion. You have to write tail recursively in OCaml (or any
strict language) or you will blow the stack. While tail recursion is
often wrong (in terms of efficiency) in Haskell, it is always right in
OCaml.
-Jeff
--
Regards,
Kashyap