Mailing list for all users of the OCaml language and system.
 help / color / mirror / Atom feed
From: Xavier Leroy <Xavier.Leroy@inria.fr>
To: Vyskocil Vladimir <vyskocil@math.unice.fr>,
	Caml list <caml-list@inria.fr>
Subject: Re: Constante NIL
Date: Wed, 2 Jun 1999 21:02:10 +0200	[thread overview]
Message-ID: <19990602210210.48838@pauillac.inria.fr> (raw)
In-Reply-To: <37529AB8.B306AD5F@math.unice.fr>; from Vyskocil Vladimir on Mon, May 31, 1999 at 04:20:40PM +0200

> N'est t'il pas concevable de rajouter a Objectif Caml une constante
> NIL, UNDEF ou je sais pas trop comment la nommer dont la valeur serait
> '_a. Ceci permettrait d'initialiser "par defaut", par exemples, 
> les variables d'instances d'une classe lorsque l'on ne possede aucune
> valeur par defaut du bon type. Je sais qu'il y'a toujours la possibilite
> d'utiliser le type 'a option mais ca devient lourd a gerer...

Le problème de la constante "nil" est d'assurer qu'elle n'est pas
utilisée comme une valeur "normale" du type en question.  Cela
signifierait générer des tests à "nil" avant chaque accès dans une
structure de données (de la même manière que les compilateurs Java
doivent tester si les objets ne sont pas "null").  C'est coûteux en
taille de code et en temps d'exécution, et diminue la robustesse des
programmes.

L'utilisation du type 'a option est certes lourde mais a le mérite de
rendre ces tests explicites et optimisables par le programmeur.

Quant à utiliser Obj.magic, je le déconseille car le programme peut
alors très bien planter s'il utilise par erreur la valeur "nil" comme
une valeur normale.  (Oui, j'ai essayé; et oui, mon code a fini par
planter à cause de cela.)

- Xavier Leroy




  parent reply	other threads:[~1999-06-11 22:53 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
1999-05-31 14:20 Vyskocil Vladimir
1999-06-01 16:16 ` Francois Rouaix
1999-06-02  7:27 ` Jean-Francois Monin
1999-06-02 19:02 ` Xavier Leroy [this message]
1999-06-14 20:48   ` Pierre Weis

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=19990602210210.48838@pauillac.inria.fr \
    --to=xavier.leroy@inria.fr \
    --cc=caml-list@inria.fr \
    --cc=vyskocil@math.unice.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