Readable Functional Languages

Neel Krishnaswami neelk at brick.cswv.com
Thu Feb 3 20:43:17 EST 2000


Brian Rogoff <bpr at shell5.ba.best.com> wrote:
> On Thu, 3 Feb 2000, Alexander Williams wrote:
> > On 3 Feb 2000 00:33:19 +0100, Carel Fellinger <cfelling at iae.nl> wrote:
> > >Admittedly off topic, I would like some advice on what language to choose
> > >to explore the realm of functional languages.
> >
> > You really have two /good/ choices:
>
> More than two, really.

Yeah, there are a bunch of really well-designed functional
languages. It's very difficult to go seriously wrong. Haskell, 
Clean, Miranda, Scheme, Mercury, SML, Ocaml -- all of these are
cool languages.

> > If you're a traditionalist and parens don't scare you, Scheme is a
> > really good platform for exploring functional programming.  Its not a
> > 'pure' language, as such, but it can be programmed in a very pure
> > style.
> 
> Given this, Dylan is also a good choice. Not pure functional, but
> it has higher order functions which are the sine qua non of FP. 

Dylan is my favorite language, but I wouldn't recommend it to someone
who wants to learn functional programming. It encourages a more OO
than functional style. (Eg, it has looping syntax, and even though the
Gwydion compiler turns that into a tail-recursive function call under
the hood, it still *looks* imperative to the new Dylan programmer.)

Scheme is still better for learning fp, IMO, if only because the
culture and books all push people towards the functional style.

> > If you're more daring, you can give Haskell a shake.  It /is/ a pure
> > functional language and, as such, has some wackiness around state and
> > external IO, but it /definitely/ can do some interesting things if you
> > start wrapping your head around it.
> 
> If you (Carel) don't mind shelling out some guilders and are feeling 
> nationalistic ;-), point your browser at http://www.cs.kun.nl/~clean/

I thought that Clean was free for noncommercial use? Learning fp would
certainly seem to be noncommercial.


Neel



More information about the Python-list mailing list