From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from concorde.inria.fr (concorde.inria.fr [192.93.2.39]) by yquem.inria.fr (Postfix) with ESMTP id 88028BC2F for ; Thu, 25 Nov 2004 21:56:19 +0100 (CET) Received: from pauillac.inria.fr (pauillac.inria.fr [128.93.11.35]) by concorde.inria.fr (8.13.0/8.13.0) with ESMTP id iAPKuJ2e026851 for ; Thu, 25 Nov 2004 21:56:19 +0100 Received: from concorde.inria.fr (concorde.inria.fr [192.93.2.39]) by pauillac.inria.fr (8.7.6/8.7.3) with ESMTP id VAA17891 for ; Thu, 25 Nov 2004 21:56:18 +0100 (MET) Received: from swordfish.cs.caltech.edu (swordfish.cs.caltech.edu [131.215.44.124]) by concorde.inria.fr (8.13.0/8.13.0) with ESMTP id iAPKuH0e026847 for ; Thu, 25 Nov 2004 21:56:18 +0100 Received: from orchestra.cs.caltech.edu (orchestra.cs.caltech.edu [131.215.44.20]) by swordfish.cs.caltech.edu (Postfix) with ESMTP id D8CD6DF27A for ; Thu, 25 Nov 2004 12:56:16 -0800 (PST) Received: by orchestra.cs.caltech.edu (Postfix, from userid 2554) id 2A19E9BDA9; Thu, 25 Nov 2004 12:56:12 -0800 (PST) From: Michael Vanier To: caml-list@inria.fr In-reply-to: (guttman@mitre.org) Subject: Re: [Caml-list] Experiences with learning OCaml? References: <3033.66.167.163.102.1101382830.squirrel@acs-webmail.ucsd.edu> Message-Id: <20041125205612.2A19E9BDA9@orchestra.cs.caltech.edu> Date: Thu, 25 Nov 2004 12:56:12 -0800 (PST) X-Miltered: at concorde with ID 41A646F3.000 by Joe's j-chkmail (http://j-chkmail.ensmp.fr)! X-Miltered: at concorde with ID 41A646F1.000 by Joe's j-chkmail (http://j-chkmail.ensmp.fr)! X-Spam: no; 0.00; vanier:01 mvanier:01 caml-list:01 ocaml:01 sicp:01 sicp:01 ocaml:01 haskell:01 haskell:01 ucsd:01 parentheses:01 felleisen:01 writes:01 pair:01 clearer:01 X-Spam-Checker-Version: SpamAssassin 3.0.0 (2004-09-13) on yquem.inria.fr X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=disabled version=3.0.0 X-Spam-Level: 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 > 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 >