From mboxrd@z Thu Jan 1 00:00:00 1970 Received: (from weis@localhost) by pauillac.inria.fr (8.7.6/8.7.3) id IAA04703 for caml-redistribution; Tue, 14 Jan 1997 08:53:30 +0100 (MET) From: Pierre Weis Message-Id: <199701140753.IAA04703@pauillac.inria.fr> Subject: Re: bizarrerie du typage (fwd) To: caml-redistribution Date: Tue, 14 Jan 1997 08:53:30 +0100 (MET) MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit From: Didier Rousseau Message-Id: <199701131435.PAA16829@fermi.cnam.fr> X-Authentication-Warning: fermi.cnam.fr: localhost [127.0.0.1] didn't use HELO protocol To: caml-list@inria.fr Subject: Re: bizarrerie du typage In-reply-to: Your message of "Sun, 12 Jan 97 20:19:43 +0100." Date: Mon, 13 Jan 97 15:35:36 +0100 X-Mts: smtp [Note du mode'rateur: Didier a envoye' 2 messages successifs, que j'ai concate'ne's pour limiter le traffic] Bonjour a tous reponse au message de David.Monniaux@ens-lyon.fr >... >#let zero = fun x y -> y;; >val zero : 'a -> 'b -> 'b = >#let succ = fun n f x -> n f (f x);; >val succ : (('a -> 'b) -> 'b -> 'c) -> ('a -> 'b) -> 'a -> 'c = >#let un = succ zero;; >val un : ('_a -> '_b) -> '_a -> '_b = >#let deux = succ un;; >val deux : ('_a -> '_a) -> '_a -> '_a = >#deux (fun x -> x) 0;; >- : int = 0 >#deux;; >- : (int -> int) -> int -> int = > >Pourquoi le type de "deux" a-t-il change? il y a une difference entre une variable de type 'a et '_a l'une est generalisee, tandis que l'autre ne l'est pas encore... et donc le sera des la premiere utilisation... De facon generale : soit une fun f : 'a -> 'b -> 'b puis let f0 = f 0;; ne sera pas accepte a la compil le 'b ne pourra pas etre generalise => solution : let f0 x = f 0 x;; => il faut dans ce cas preciser tous les arguments Donc en general, il y a un probleme entre variable de type et eta-reduction. Mais je laisse la parole aux specialistes. Didier Rousseau ********************************************************* * " L'imagination est plus importante * * que la connaissance. " * * * * A. E. * *********************************************************