Mailing list for all users of the OCaml language and system.
 help / color / mirror / Atom feed
From: "SooHyoung Oh" <shoh@compiler.kaist.ac.kr>
To: "Michael Vanier" <mvanier@cs.caltech.edu>, <caml-list@inria.fr>
Subject: Re: [Caml-list] Experiences with learning OCaml?
Date: Fri, 26 Nov 2004 09:47:06 +0900	[thread overview]
Message-ID: <002601c4d351$74871cc0$1501a8c0@hama> (raw)
In-Reply-To: <20041125205612.2A19E9BDA9@orchestra.cs.caltech.edu>


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" <mvanier@cs.caltech.edu>
To: <caml-list@inria.fr>
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 <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
> >
>
> _______________________________________________
> 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
>
>


  parent reply	other threads:[~2004-11-26  0:39 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
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 [this message]
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='002601c4d351$74871cc0$1501a8c0@hama' \
    --to=shoh@compiler.kaist.ac.kr \
    --cc=caml-list@inria.fr \
    --cc=mvanier@cs.caltech.edu \
    /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