From: Gerd Stolpmann <info@gerd-stolpmann.de>
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, 22 Jun 2015 16:19:25 +0200 [thread overview]
Message-ID: <1434982765.31996.19.camel@e130.lan.sumadev.de> (raw)
In-Reply-To: <m2vbefx41k.fsf@charm-ecran.irisa.fr>
[-- Attachment #1: Type: text/plain, Size: 1785 bytes --]
Am Montag, den 22.06.2015, 15:31 +0200 schrieb Alan Schmitt:
> Hello,
>
> In my Ocaml class, I tend to promote the use of ";;" to separate phrases
> (I'm basically following
> http://ocaml.org/learn/tutorials/structure_of_ocaml_programs.html#Usingandomittingand
> although I was not aware of this page when I created the course). My
> motivation is to minimize the difference between using the top-level and
> writing files.
>
> I am now wondering if this is a good practice. In a nutshell, would you
> rather use
>
> #+begin_src ocaml
> let x = 12;;
> print_endline "Hello World!"
> #+end_src
>
> or
>
> #+begin_src ocaml
> let x = 12
> let () = print_endline "Hello World!"
> #+end_src
>
> when teaching Ocaml?
There is one downside of not using ";;", namely that you sometimes get
syntax errors much later than necessary. E.g. in
let x =
do_this();
do_that();
let y = 6
let z =
do_third_thing()
you get the syntax error at the position of the third "let" although it
is the extra semicolon at the end of the first definition. This can be
very confusing, and it is a very good reason to use ";;" outside the
toplevel. IMHO it is better to be honest about this issue. Because "let"
is an open-ended construction the ";;" can be useful as end marker, and
the compiler emits better error messages with more precise locations.
Gerd
> Thanks,
>
> Alan
>
--
------------------------------------------------------------
Gerd Stolpmann, Darmstadt, Germany gerd@gerd-stolpmann.de
My OCaml site: http://www.camlcity.org
Contact details: http://www.camlcity.org/contact.html
Company homepage: http://www.gerd-stolpmann.de
------------------------------------------------------------
[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 473 bytes --]
next prev parent reply other threads:[~2015-06-22 14:19 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 [this message]
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
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=1434982765.31996.19.camel@e130.lan.sumadev.de \
--to=info@gerd-stolpmann.de \
--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