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 3F24FBC2F for ; Fri, 26 Nov 2004 01:39:27 +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 iAQ0dQWw021407 for ; Fri, 26 Nov 2004 01:39:26 +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 BAA04300 for ; Fri, 26 Nov 2004 01:39:24 +0100 (MET) Received: from miritek.com (v30-53.icu.ac.kr [210.107.130.53] (may be forged)) by concorde.inria.fr (8.13.0/8.13.0) with ESMTP id iAQ0dKDM021393 for ; Fri, 26 Nov 2004 01:39:22 +0100 Received: from hama (v30-54.icu.ac.kr [210.107.130.54] (may be forged)) by miritek.com (8.9.3/8.9.3) with SMTP id JAA32462; Fri, 26 Nov 2004 09:52:44 +0900 Message-ID: <002601c4d351$74871cc0$1501a8c0@hama> From: "SooHyoung Oh" To: "Michael Vanier" , References: <3033.66.167.163.102.1101382830.squirrel@acs-webmail.ucsd.edu> <20041125205612.2A19E9BDA9@orchestra.cs.caltech.edu> Subject: Re: [Caml-list] Experiences with learning OCaml? Date: Fri, 26 Nov 2004 09:47:06 +0900 MIME-Version: 1.0 Content-Type: text/plain; charset="ks_c_5601-1987" Content-Transfer-Encoding: 7bit X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 6.00.2800.1409 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1409 X-Miltered: at concorde with ID 41A67B3E.000 by Joe's j-chkmail (http://j-chkmail.ensmp.fr)! X-Miltered: at concorde with ID 41A67B38.000 by Joe's j-chkmail (http://j-chkmail.ensmp.fr)! X-Spam: no; 0.00; compiler:01 caml-list:01 ocaml:01 ocaml:01 char:01 vanier:01 mvanier:01 caml-list:01 sicp:01 sicp:01 haskell:01 haskell:01 ucsd:01 parentheses:01 felleisen:01 X-Spam-Checker-Version: SpamAssassin 3.0.0 (2004-09-13) on yquem.inria.fr X-Spam-Status: No, score=0.1 required=5.0 tests=FORGED_RCVD_HELO autolearn=disabled version=3.0.0 X-Spam-Level: I strongly agree with your opinion. I'v been looking for an introductory book for Ocaml as the first programming book, but I couldn't find any good book. In theses days, I tried to convert some part of HTPC (How to Design Programs) to ocaml version and I found the book is very cool as "an introductory programming book with Ocaml". It is commenting about types and type errors and the statements and examples are already almost type safe. So, I'm looking forward to "How to Design Programs using Ocaml" :). Anyway, in my experience, the difficult parts to convert are 1. cond-expression -> should be rewritten using pattern-matching; need new examples 2. symbol information -> decide which one is better? strings or varient types? 3. structure -> each example using structure shoud be resolved: how to convert to tuples, records, or varient types case by case What is needed for more advanced level 1. need a chapter explaining type system? -> currently, I don't think so. 2. need chpaters for module system and OOP? -> nothing or introductory level only Differences between Scheme (in HTPC) vs. Ocaml are 1. number : int, float 2. conditional expression: pattern matching expression 3. symbol: string, char, varient type 4. structure: tuples, records, varient types 5. structure definition + data definition: type definition ----- Original Message ----- From: "Michael Vanier" To: Sent: Friday, November 26, 2004 5:56 AM Subject: Re: [Caml-list] Experiences with learning OCaml? > > 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 > > > > _______________________________________________ > Caml-list mailing list. Subscription management: > http://yquem.inria.fr/cgi-bin/mailman/listinfo/caml-list > Archives: http://caml.inria.fr > Beginner's list: http://groups.yahoo.com/group/ocaml_beginners > Bug reports: http://caml.inria.fr/bin/caml-bugs > >