Mailing list for all users of the OCaml language and system.
 help / color / mirror / Atom feed
From: Philippe Wang <mail@philippewang.info>
To: Alan Schmitt <alan.schmitt@polytechnique.org>
Cc: OCaml Mailing List <caml-list@inria.fr>
Subject: Re: [Caml-list] use of ";;" when teaching Ocaml
Date: Mon, 29 Jun 2015 02:12:26 +0200	[thread overview]
Message-ID: <CAAFfW_rA_Y9wgEqqn=Z8h=qCdWc5KszGALaWbH6hCfnSW_Hi1Q@mail.gmail.com> (raw)
In-Reply-To: <CAAFfW_oEPqrraQfuDYTdVwAJRJfd5qwzVoWFAd8QMRnRNiBOAA@mail.gmail.com>

Apart from the ";;" thing, if you teach to beginners (well, actually
it could help experimented programmers as well), I suggest to make
function signatures explicit, meaning:
write
let f (x : int) : int = x + 1
instead of
let f x = x + 1
or
let rec map (f : 'a -> 'b) (l : 'a list) : 'b list = ...
instead of
let rec map f l = ...

for two main reasons:
1. it helps if there are bugs! Bugs are easier to find when we tell
the type checker what we expect.
2. it helps the students, because type inference is not that helpful.

But, I wouldn't force students to write those type annotations, except
perhaps the first few weeks...

Note that I would totally avoid this style:
let rec map : ('a -> 'b) -> 'a list -> 'b list = fun f l -> ...
(not that I don't like it, but I believe the other one is a lot more
efficient, pedagogically speaking)


Cheers,
Philippe Wang

      reply	other threads:[~2015-06-29  0:12 UTC|newest]

Thread overview: 29+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-06-22 13:31 Alan Schmitt
2015-06-22 13:52 ` Ivan Gotovchits
2015-06-22 13:53 ` Daniil Baturin
2015-06-22 14:19 ` Gerd Stolpmann
2015-06-22 15:48   ` Damien Doligez
2015-06-22 15:56     ` Thomas Refis
2015-06-22 16:07       ` Mark Shinwell
2015-06-22 16:30         ` Gerd Stolpmann
2015-06-22 16:47           ` Mark Shinwell
2015-06-22 17:08             ` Daniel Bünzli
2015-06-22 18:56             ` Gerd Stolpmann
2015-06-22 17:18           ` Török Edwin
2015-06-22 17:42         ` Francois Berenger
2015-06-22 17:46           ` Ivan Gotovchits
2015-06-22 17:53           ` John Whitington
2015-06-22 16:07     ` Pippijn van Steenhoven
2015-06-22 16:25       ` Daniel Bünzli
2015-06-22 18:18       ` Steve Zdancewic
2015-06-22 16:42   ` Thomas Refis
2015-06-22 16:47     ` David House
2015-06-22 17:08     ` Daniil Baturin
2015-06-22 17:04 ` Daniel Bünzli
2015-06-22 23:41 ` Philippe Wang
2015-06-23  1:15   ` Kenichi Asai
2015-06-23 13:27   ` Alan Schmitt
2015-06-23 13:35     ` Ivan Gotovchits
2015-06-23 13:36       ` Ivan Gotovchits
2015-06-25 16:51     ` Philippe Wang
2015-06-29  0:12       ` Philippe Wang [this message]

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='CAAFfW_rA_Y9wgEqqn=Z8h=qCdWc5KszGALaWbH6hCfnSW_Hi1Q@mail.gmail.com' \
    --to=mail@philippewang.info \
    --cc=alan.schmitt@polytechnique.org \
    --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