Nat Pryce <nat.pryce / b13media.com> writes:

> On Fri, 2002-08-23 at 15:18, William Djaja Tjokroaminata wrote:
> > Can anyone give me a pointer to the original reason why
> > pragmaticprogrammer.com chooses Haskell instead of Scheme, Lisp, or
> > ML?  (If we just want to learn "a new thing", any of the functional
> > languages will do, right?  But to be both learning a new thing and being
> > practical, I think it is a different story.)
> 
> Not all functional languages are the same.  For example:
> 
> Haskell and ML have static typing with powerful generics and type
> inference.  Scheme and LISP have dynamic, but not polymorphic,
>typing.
Well that is not fully true. Common Lisp does have CLOS which does
have defmethod which are used for polymorphic calls.



> 
> Haskell is lazy (implements normal order evaluation of function
> arguments).  ML, Scheme and LISP are strict (implement first order
> evaluation).
The default evaluation model of Haskell is lazy you can make it strict
and the defautl evaluation model of Scheme and Lisp is eager but you
can make it lazy too. 
> 
> Haskell is pure functional.  ML, Scheme and LISP functions can have side
> effects.
Haskell does have side effects too. 
> 
> Haskell has curried functions, ML, Scheme and LISP do not.
Per default yes, but this can be change at least for Lisp.

> 
> Etc.
> 
> So, Haskell is further away from more everyday languages than Scheme and
> LISP, while ML is somewhere between the two.  For example, Java has a
> mix of dynamic and static type systems, has first order evaluation of
> function arguments, allows functions with side effects, and does not
> support curried functions.  So, Java is closer to Scheme than Haskell. 
> If you're used to Java, I think Haskell is much more interesting to
> learn.
Very interesting candidated to learn are IMHO. 
- Haskell haskell.org
- Ocaml http://pauillac.inria.fr/ocaml/ which is quite interesting
because it combines  functional language with an OO system.
- Common Lisp because of it's flexibility. If you like Ruby you
usually should like Lisp too.
- Moart/Oz as multiparadigm lanuages www.mozart-oz.org
- Erlang. Which provides abunch of extremly useful libraries and is
especially developed for distributed programming. 

Regards
Friedrich