[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[ale] Why LISP? (was Why Ruby?)



Aditya Srinivasan <sriad at uab.edu> writes:

> Hi,
> 
> On Thu, 27 Jan 2005, John P. Healey wrote:
> 
> > I think the main thing I like about Lisp is that it's absolutely nothing like
> > perl, smalltalk, c, python, or java.  Whenever I sit down to try and write
> > something in lisp the way i would normally write it in {insert language here},
> > i find that lisp manages to accurately embody my ideas in the jumbled mess of
> > thought that they truly are.  At that point, I usually throw away whatever i've
> > written and rewrite a working copy in a tenth of the amount of code, simply by
> > abstracting it properly with macros.
> 
> I am interested in learning the functional programming paradigm.
> Are there any particular resources online/books you would recommend ?
> Also any advice about choosing one amongst LISP/Scheme ?

Why limit your options to Lisp and Scheme? (Though those are both good
languages to know.)  In fact, writing non-functional code in Lisp is
quite easy, so it's not necessarily a good choice for learning FP.

Haskell <http://www.haskell.org> is a truly beautiful,
purely-functional language (no side-effects). It's very different from
Lisp or Scheme, or any other language I know, come to think of it.

O'Caml <http://www.ocaml.org/> seems to be the Perl of FP. IIRC, it's
ML with OO extensions; ML was one of the very first functional
languages (possibly the very first, I'm not sure). Like Lisp, it
permits side effects. I have written a tiny bit of O'Caml code, but
the syntax is gross; I like Haskell better.

If you want something more traditional-looking, there's also SAC
(Single-Assignment C) <http://www.sac-home.org>, an
(almost?)-purely-functional derivative of C that seems to do a very
good job of appearing C-like while actually being side-effect free.

Cheers,

-- Joe

-- 
"Meet the new boss / Same as the old boss..." -- The Who
... Oh well, at least there's 2008.
--
pub  1024D/BA496D2B 2004-05-14 Joseph A Knapka
     Key fingerprint = 3BA2 FE72 3CBA D4C2 21E4  C9B4 3230 94D7 BA49 6D2B
If you really want to get my attention, send mail to
jknapka .at. kneuro .dot. net.