From: Michael Vanier <mvanier@cs.caltech.edu>
To: caml-list@inria.fr
Subject: Re: [Caml-list] Experiences with learning OCaml?
Date: Thu, 25 Nov 2004 12:56:12 -0800 (PST) [thread overview]
Message-ID: <20041125205612.2A19E9BDA9@orchestra.cs.caltech.edu> (raw)
In-Reply-To: <nhau0rd4q95.fsf@malabar.mitre.org> (guttman@mitre.org)
I second this (not just because I teach a course based on Structure and
Interpretation of Computer Programs (SICP) ;-)). Also, you should know
that the book is available for free on its web site:
http://mitpress.mit.edu/sicp. I learned most of what I know of functional
programming from reading this book. Another good book is How to Design
Programs, which also uses scheme, and which also is available for free on
its web site: http://www.htdp.org. This latter book is extremely
accessible even to non-programmers, although it's somewhat tedious at
first for more experienced programmers.
Ocaml is a fantastic second functional language after you've gotten the
hang of the functional style, and you can learn it straight from the
manuals. And when you want to go further you should learn Haskell and be
prepared for serious brain-expansion.
The only problem is that once you've learned languages like scheme, ocaml
and haskell (and I'll throw in common lisp for good measure), you'll find
languages like C, C++, java etc. to be deadly dull and annoying (sort of
like a racing car driver being forced to drive a tricycle).
Mike
> From: guttman@mitre.org (Joshua D. Guttman)
> Date: 25 Nov 2004 15:39:50 -0500
>
> whenning@ucsd.edu writes:
>
> >
> > Although I've of course Googled around for potential books to
> > select, are there any ones particularly suited for someone in my
> > position?
> >
>
> In my opinion, a splendid book that's full of insights into
> computation and languages and how to solve problems is Abelson and
> Sussman, Structure and Interpretation of Computer Programs (MIT
> Press).
>
> It uses Scheme, which has the infamous parentheses, but really those
> aren't as bad as you think. In fact, they're a syntactically minimal
> way of writing programs, which doesn't get in your way when thinking
> about problems. An outstanding Scheme implementation is PLT Scheme
> from Felleisen and his colleagues, now at Northeastern.
>
> Having taken a tour through Abelson and Sussman, you're sure to feel
> at home in OCaml or other functional languages, and probably look at
> programming in any language with a clearer pair of eyes.
>
> Joshua
>
> --
> Joshua D. Guttman <guttman@mitre.org>
> MITRE, Mail Stop S119 Office: +1 781 271 2654
> 202 Burlington Rd. Fax: +1 781 271 8953
> Bedford, MA 01730-1420 USA Cell: +1 781 526 5713
>
next prev parent reply other threads:[~2004-11-25 20:56 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2004-11-25 11:40 whenning
2004-11-25 11:59 ` [Caml-list] " Erik de Castro Lopo
2004-11-25 13:46 ` skaller
2004-11-25 12:28 ` chen yang
2004-11-25 13:52 ` Martin Berger
2004-11-25 13:36 ` Richard Jones
2004-11-25 20:39 ` Joshua D. Guttman
2004-11-25 20:56 ` Michael Vanier [this message]
2004-11-25 21:16 ` Danny Yoo
2004-11-26 0:16 ` Martin Berger
2004-11-26 0:15 ` Michael Walter
2004-11-26 0:47 ` SooHyoung Oh
2004-11-26 1:46 ` Michael Vanier
2004-11-26 3:09 ` SooHyoung Oh
2004-11-26 6:56 ` William Lovas
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20041125205612.2A19E9BDA9@orchestra.cs.caltech.edu \
--to=mvanier@cs.caltech.edu \
--cc=caml-list@inria.fr \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox