Version française
Home     About     Download     Resources     Contact us    
Browse thread
Classe recursive et heritage
[ Home ] [ Index: by date | by threads ]
[ Search: ]

[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
Date: -- (:)
From: Wolfgang Lux <lux@p...>
Subject: Re: Classe recursive et heritage
[Sorry, for the answer not being in french, but I'm still better in 
reading french than in writing :-(]
> [...] 
> Mais cela ne correspond  pas a mon  besoin puisque les fils gauches et
> droit de cette nouvelle classe ne sont que des  arbres non decores. En
> fait il  me semble que, ce  dont  j'ai besoin c'est,  dans la premiere
> definition, d'une variable de type (type au sens typage) "self" qui me
> permettrai alors de  dire que les fils  gauche  et droit sont  du meme
> type  que  la classe (soit  le point  fixe de  cette definition). Cela
> donnerai alors
> 
> class ('a) tree as 'self (g:'self) (d:'self) =
>   val fg = g
>   val fd = d
> end;;
> 
> class ('a) labelled_tree g d (i:int) =
>   inherit ('a)tree g d
>   val un_entier = i
> end;;
> 
> Dans ce  cadre la, le  inherit aurait pour   consequence de modifer le
> point  fixe  de   la definition    pour  creer  la    nouvelle  classe
> labelled_tree.  Mon probleme est que je n'ai  pas trouve comment faire
> en  O'caml.  Est-ce possible? Si  non ou est  le probleme  ? Le typage

You can simply define this in OCaml as follows (Note that I've also 
added accessor methods to the classes):

class 'a tree (g : 'b) (d : 'b) : 'b =
  val fg = g
  val fd = d
  method fg = fg
  method fd = fd
end;;

class 'a labeled_tree g d (i : int) =
  inherit ('a) tree g d
  val un_entier = i
  method label = un_entier
end;;

Regards
Wolfgang Lux
--
Wolfgang Lux				  Phone: +49-251-83-38263
Institut fuer Wirtschaftinformatik	    FAX: +49-251-83-38259
Universitaet Muenster		Email: lux@helios.uni-muenster.de