Version française
Home     About     Download     Resources     Contact us    
Browse thread
Constante NIL
[ Home ] [ Index: by date | by threads ]
[ Search: ]

[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
Date: -- (:)
From: Xavier Leroy <Xavier.Leroy@i...>
Subject: Re: Constante NIL
> 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