null
.EnvList
possèdent un champ qui est une liste.
class EnvList implements Env { private List me ; EnvList () { me = null ; } // Constructeur des environnements vides, amical. private EnvList (List l) { // Constructeur privé. me = l ; } /* Les méthodes des interfaces sont nécessairement publiques, c'est la vie ! */ public Env add (String x, int v) { return new EnvList(new List (x, v, me)) ; } public int get(String x) { return List.assoc(me, x) ; } } |
Env
(et non pas
un EnvList
) et la conversion de type est ici sans douleur.
En effet, il s'agit ici d'une perte d'information qui ne peut pas échouer.Env
.