From mboxrd@z Thu Jan 1 00:00:00 1970 Received: (from majordomo@localhost) by pauillac.inria.fr (8.7.6/8.7.3) id KAA15787; Wed, 21 Aug 2002 10:41:03 +0200 (MET DST) X-Authentication-Warning: pauillac.inria.fr: majordomo set sender to owner-caml-list@pauillac.inria.fr using -f Received: from concorde.inria.fr (concorde.inria.fr [192.93.2.39]) by pauillac.inria.fr (8.7.6/8.7.3) with ESMTP id KAA15533 for ; Wed, 21 Aug 2002 10:41:03 +0200 (MET DST) Received: from shiva.jussieu.fr (shiva.jussieu.fr [134.157.0.129]) by concorde.inria.fr (8.11.1/8.11.1) with ESMTP id g7L8f2914710 for ; Wed, 21 Aug 2002 10:41:02 +0200 (MET DST) Received: from ibm3.cicrp.jussieu.fr (ibm3.cicrp.jussieu.fr [134.157.15.3]) by shiva.jussieu.fr (8.12.5/jtpda-5.4) with ESMTP id g7L8f1jR099630 ; Wed, 21 Aug 2002 10:41:01 +0200 (CEST) Received: from ibm1.cicrp.jussieu.fr (ibm1.cicrp.jussieu.fr [134.157.15.1]) by ibm3.cicrp.jussieu.fr (8.8.8/jtpda/mob-V8) with ESMTP id KAA22516 ; Wed, 21 Aug 2002 10:39:17 +0200 Received: from localhost (fernande@localhost) by ibm1.cicrp.jussieu.fr (8.8.8/jtpda/mob-v8) with SMTP id KAA47230 ; Wed, 21 Aug 2002 10:37:43 +0200 Date: Wed, 21 Aug 2002 10:37:43 +0200 (DST) From: Diego Olivier Fernandez Pons To: Jacques Garrigue cc: caml-list@inria.fr Subject: Re: [Caml-list] Simuler les vues avec des variantes polymorphes In-Reply-To: <20020816141610D.garrigue@kurims.kyoto-u.ac.jp> Message-ID: MIME-Version: 1.0 Content-Type: MULTIPART/MIXED; BOUNDARY="-2036527359-1610980991-1029919063=:63958" X-Antivirus: scanned by sophie at shiva.jussieu.fr Sender: owner-caml-list@pauillac.inria.fr Precedence: bulk This message is in MIME format. The first part should be readable text, while the remaining parts are likely unreadable without MIME-aware tools. Send mail to mime@docserver.cac.washington.edu for more info. ---2036527359-1610980991-1029919063=:63958 Content-Type: TEXT/PLAIN; charset=iso-8859-1 Content-Transfer-Encoding: QUOTED-PRINTABLE Jacques Garrigue a =E9crit : > Je ne suis pas sur de tout comprendre, mais si le type de D=E9sol=E9, j'envoie du code d=E9sormais > Et quid des types pas encore declares? > L'idee des variants polymorphes est de se debarasser des declarations > prealables. > Mais on peut toujours ecrire des declarations a` posteriori: >=20 > type 'a anyView =3D ['a heapView | 'a otherView] >=20 En r=E9alit=E9, comme je ne restreins pas le type de mes fonctions dans le code source (mais seulement dans le mli), l'interpr=E9teur ne prend pas en compte mes d=E9clarations (que je ne fais que pour convenance personnelle afin de pouvoir =E9ventuellement v=E9rifier la conformit=E9 des types inf=E9r=E9s avec ce que j'attends)=20 Au demeurant, je pensais que l'id=E9e des variantes polymorphes, plus que d=E9barasser le programmeur des d=E9clarations pr=E9alables =E9tait de permettre l'=E9criture incr=E9mentielle de code (par exemple plusieurs programmeurs qui piochent dans un flot de donn=E9es les valeurs qu'ils peuvent traiter et laissent les autres) Enfin, la documentation sur les variantes polymorphes est assez succinte, par exemple elle n'aborde pas le cas o=F9 un constructeur est =E0 la fois marqu=E9 d'un < et d'un > (alors que c'est le type de la premi=E8re fonction dans mon code, j'ai d=FB me reporter au livre "d=E9veloppement d'applications en Objective Caml")=20 Je suis vraiment loin d'avoir compl=E8tement compris le fonctionnement des variantes polymorphes : =E0 la vue du premier exemple de la section "Avanced use" # let f =3D function `A -> `C | x -> x ;; val f : ([> `A | `C] as 'a) -> 'a # f `E;; - : _ [> `A | `C | `E] =3D `E je m'imaginais donc que # let f =3D function `A -> 1 | _ -> 0 ;; # let x =3D `E in (f x, x) ;; me r=E9pondrait - : int * _[> `A | `E] =3D (0, `E) or il r=E9pond int * _[>`E] Diego Olivier ---2036527359-1610980991-1029919063=:63958 Content-Type: APPLICATION/octet-stream; name="views.tar.bz2" Content-Transfer-Encoding: BASE64 Content-ID: Content-Description: code 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 BUgAyIA= ---2036527359-1610980991-1029919063=:63958-- ------------------- To unsubscribe, mail caml-list-request@inria.fr Archives: http://caml.inria.fr Bug reports: http://caml.inria.fr/bin/caml-bugs FAQ: http://caml.inria.fr/FAQ/ Beginner's list: http://groups.yahoo.com/group/ocaml_beginners