From: skaller <skaller@users.sourceforge.net>
To: kirillkh <kirillkh@gmail.com>
Cc: caml-list@yquem.inria.fr
Subject: Re: [Caml-list] best and fastest way to read lines from a file?
Date: Wed, 03 Oct 2007 05:35:51 +1000 [thread overview]
Message-ID: <1191353751.6668.47.camel@rosella.wigram> (raw)
In-Reply-To: <e2d02be30710021102h565c7e2ax88b03a4066812816@mail.gmail.com>
On Tue, 2007-10-02 at 20:02 +0200, kirillkh wrote:
> Replying to a private mail from Brian:
> (* I couldn't figure out, how to declare a polymorphic exception
> properly *)
> exception Done of 'a
That's easy -- you can't: even if you could, how could
you possibly use it?
This compiles fine:
type t = { field : 'a. 'a }
exception Done of t
but 'field' is useless. This is not at all the same as
let f (x:'a) (g:'a -> int) =
match g x with
| 0 -> ..
| ..
because *inside* the function, 'a is not a type variable,
and the code is not polymorphic, it is simply a sole
unknown type, sometimes said to be monomorphised.
The problem with exceptions is that they're not captured,
so they cannot be polymorphic. Exceptions SUCK because
their context is not delimited -- you can throw all the way
out of the mainline .. :)
[This happens to me regularly and it can takes days to figure
out what is Not_found ..]
--
John Skaller <skaller at users dot sf dot net>
Felix, successor to C++: http://felix.sf.net
next prev parent reply other threads:[~2007-10-02 19:35 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-10-01 21:27 YC
2007-10-01 21:55 ` [Caml-list] " Daniel Bünzli
2007-10-01 22:29 ` YC
2007-10-01 21:55 ` Olivier Roussel
2007-10-02 12:39 ` Mattias Engdegård
2007-10-02 12:56 ` Brian Hurt
2007-10-02 16:15 ` kirillkh
2007-10-02 17:10 ` verlyck, Bruno.Verlyck
2007-10-02 18:02 ` kirillkh
2007-10-02 19:35 ` skaller [this message]
2007-10-02 21:05 ` kirillkh
2007-10-02 21:07 ` Jon Harrop
2007-10-02 20:23 ` Olivier Andrieu
2007-10-02 20:49 ` kirillkh
2007-10-02 21:10 ` Jon Harrop
2007-10-02 21:15 ` David Allsopp
2007-10-02 22:23 ` skaller
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=1191353751.6668.47.camel@rosella.wigram \
--to=skaller@users.sourceforge.net \
--cc=caml-list@yquem.inria.fr \
--cc=kirillkh@gmail.com \
/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;
as well as URLs for NNTP newsgroup(s).