English version
Accueil     À propos     Téléchargement     Ressources     Contactez-nous    

Ce site est rarement mis à jour. Pour les informations les plus récentes, rendez-vous sur le nouveau site OCaml à l'adresse ocaml.org.

Browse thread
RE: Proposal for study: Add a categorical Initial type to ocaml
[ Home ] [ Index: by date | by threads ]
[ Search: ]

[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
Date: 1999-10-15 (06:50)
From: skaller <skaller@m...>
Subject: Re: Proposal for study: Add a categorical Initial type to ocaml
Manuel Fahndrich wrote:
> skaller wrote:
>         [...]
>         > Like I've been saying, with option you can turn it off, with
> Obj.magic, the implementor ought to be damned sure he's doing things right.  
> But with these special "uninitialized value" sorts of things, people like
> me who've gotten used to good type systems keep looking over their
> shoulders because they're afraid it might turn around and bite
> them in the butt.
>>                 How is this different from Obj.magic? Can't that bite you
>>         in the ass too?
>>> The difference is that in the first case of uninitialized values, they can
>>> crop up anywhere in your program, since they get propagated. Using Obj.magic
>>> within a special module such as resizable arrays confines the danger to that
>>> module. The programmer can make sure (through extensive code reviews of a
>>> finite piece of code) that outside the module, things cannot go awry.

	No. It is the other way around. Obj.magic values can get
propagated, and so cause a problem. The special initial can NOT
be propagated. Any attempt to copy such a value raises an exception.
Ensuing this does not happen is also a matter of hiding within
a modular abstraction, but at least an exception will help
detect such localised errors.

John Skaller, mailto:skaller@maxtal.com.au
1/10 Toxteth Rd Glebe NSW 2037 Australia
homepage: http://www.maxtal.com.au/~skaller
downloads: http://www.triode.net.au/~skaller