From: skaller <skaller@users.sourceforge.net>
To: Richard Jones <rich@annexia.org>
Cc: caml-list <caml-list@inria.fr>
Subject: Re: [Caml-list] Why doesn't ocamlopt detect a missing ; after failwith statement?
Date: 26 Nov 2004 20:56:03 +1100 [thread overview]
Message-ID: <1101462963.9291.325.camel@pelican.wigram> (raw)
In-Reply-To: <20041126090120.GA19749@annexia.org>
On Fri, 2004-11-26 at 20:01, Richard Jones wrote:
> Thanks everyone for the explanation, and the rather convoluted
> discussion of the type system, which I don't really understand.
>
> I'd just like to add that this error bit me in a real program, and it
> would be nice if OCaml detected this common case and warned about it:
>
> if cond then (
> ...
> raise Exn
> )
> next_stmt <-- catastrophic failure, because this statement
> is silently ignored
This happens too, and seems harder to catch with the
intertwined procedural/functional coding style:
if cond then
x ..
y ... <-- woops, executed unconditionally
;
next
In Felix I do this:
if cond then something else something_else endif;
where the 'else' and 'endif' are both mandatory. For procedural
conditionals I have distinct syntax:
if cond do foo; bah; done;
Both constructions are LALR1 and unambiguous.
Note the if/then/else/endif is purely functional,
the displayed statement is equivalent to
val f: unit -> void =
if cond then something else something_else endif
;
f();
The ocaml notation is more compact but less safe.
Camlp4 could fix this I think, perhaps the
revised syntax already does?
--
John Skaller, mailto:skaller@users.sf.net
voice: 061-2-9660-0850,
snail: PO BOX 401 Glebe NSW 2037 Australia
Checkout the Felix programming language http://felix.sf.net
next prev parent reply other threads:[~2004-11-26 9:56 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2004-11-25 20:46 Richard Jones
2004-11-25 21:14 ` [Caml-list] " Nicolas Cannasse
2004-11-26 0:11 ` skaller
2004-11-26 0:44 ` Jacques Garrigue
2004-11-26 3:08 ` skaller
2004-11-26 5:25 ` Jacques Garrigue
2004-11-26 7:08 ` Nicolas Cannasse
2004-11-26 14:42 ` Jacques Garrigue
2004-11-26 17:01 ` Alain Frisch
2004-11-26 19:36 ` Michal Moskal
2004-11-26 17:01 ` Damien Doligez
2004-11-29 0:40 ` Jacques Garrigue
2004-11-29 11:07 ` [Caml-list] Why doesn't ocamlopt detect a missing ; afterfailwith statement? Frederic van der Plancke
2004-11-29 11:43 ` Jacques Garrigue
2004-11-29 11:27 ` Frederic van der Plancke
2004-11-26 22:24 ` [Caml-list] Why doesn't ocamlopt detect a missing ; after failwith statement? Hendrik Tews
2004-11-27 3:47 ` skaller
2004-11-29 0:01 ` Jacques Garrigue
2004-11-29 7:52 ` Marcin 'Qrczak' Kowalczyk
2004-11-26 3:58 ` skaller
2004-11-26 19:16 ` Brian Hurt
2004-11-26 9:01 ` Richard Jones
2004-11-26 9:56 ` skaller [this message]
2004-11-26 13:32 ` Ville-Pertti Keinonen
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=1101462963.9291.325.camel@pelican.wigram \
--to=skaller@users.sourceforge.net \
--cc=caml-list@inria.fr \
--cc=rich@annexia.org \
/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