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 MAA05639; Fri, 6 Aug 2004 12:17:38 +0200 (MET DST) Received: from nez-perce.inria.fr (nez-perce.inria.fr [192.93.2.78]) by pauillac.inria.fr (8.7.6/8.7.3) with ESMTP id MAA05922 for ; Fri, 6 Aug 2004 12:17:37 +0200 (MET DST) Received: from shiva.jussieu.fr (shiva.jussieu.fr [134.157.0.129]) by nez-perce.inria.fr (8.12.10/8.12.10) with ESMTP id i76AHamL032073 for ; Fri, 6 Aug 2004 12:17:36 +0200 Received: from ibm3.cicrp.jussieu.fr (ibm3.cicrp.jussieu.fr [134.157.15.3]) by shiva.jussieu.fr (8.12.11/jtpda-5.4) with ESMTP id i76AH9Fs097031 for ; Fri, 6 Aug 2004 12:17:10 +0200 (CEST) X-Ids: 164 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 MAA88214 for ; Fri, 6 Aug 2004 12:15:32 +0200 Received: from localhost (fernande@localhost) by ibm1.cicrp.jussieu.fr (8.8.8/jtpda/mob-v8) with ESMTP id MAA536680 for ; Fri, 6 Aug 2004 12:14:59 +0200 X-Authentication-Warning: ibm1.cicrp.jussieu.fr: fernande owned process doing -bs Date: Fri, 6 Aug 2004 12:14:59 +0200 (DST) From: Diego Olivier Fernandez Pons X-X-Sender: fernande@ibm1 To: caml-list@inria.fr Subject: [Caml-list] Peut on unifier foncteurs et objets ? Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=iso-8859-1 Content-Transfer-Encoding: QUOTED-PRINTABLE X-Miltered: at nez-perce with ID 41135AC0.001 by Joe's j-chkmail (http://j-chkmail.ensmp.fr)! X-Miltered: at shiva.jussieu.fr with ID 41135AA6.000 by Joe's j-chkmail (http://j-chkmail.ensmp.fr)! X-Antivirus: scanned by sophie at shiva.jussieu.fr X-Loop: caml-list@inria.fr X-Spam: no; 0.00; pons:01 pons:01 etu:99 foncteurs:01 foncteurs:01 programmeur:01 recursion:01 somme:01 somme:01 jet:99 comportement:01 l'execution:01 coller:99 lequel:01 remplace:01 Sender: owner-caml-list@pauillac.inria.fr Precedence: bulk Bonjour, Il y a r=E9guli=E8rement sur la liste Caml des discussions au sujet des m=E9rites respectifs des foncteurs par rapport aux objets et des possibilit=E9s d'extensions (m=E9thodes polymorphes, modules de premi=E8re classe, etc.) La redondance entre le syst=E8me de modules/foncteurs et celui des objets n'est pas =E0 mon avis tant le probl=E8me. Apr=E8s tout le programmeur Caml doit d=E9j=E0 se d=E9cider entre : - structures de donn=E9es =E9ph=E9m=E8res ou persistantes - boucles ou r=E9cursion - f =3D fun x y -> ou f x =3D function ... -> - if ou match ... with - fonctions r=E9cursives =E0 plusieurs arguments ou application partielle (ex. map) - types somme ou variantes polymorphes - types somme ou enregistrements - etc. Ce qui est nettement plus ennuyeux quand on passe du premier jet de code (sous forme de module) =E0 un foncteur, puis on change pour un objet (pensant utile de changer son comportement =E0 l'ex=E9cution), puis on revient au foncteur (car non, c'est mieux d'abstraire), etc. c'est qu'on a _vraiment_ l'impression de ne faire que du copier/coller. Mes foncteurs c'est mon module initial dans lequel j'ai remplac=E9 'compare' par 'M.compare', mes objets c'est mon module initial auquel j'ai ajout=E9 une capsule ne contenant que des 'method f =3D {< obj =3D f obj >}' Je ne connais certainement pas grand chose aux questions de typage, de compilation ou d'abstraction mais je me demande bien pourquoi Caml ne peut il pas faire le gros du copier/coller =E0 ma place en offrant une notion plus ou moins unifi=E9e (avec un simple mot cle pour changer le comportement d=E9sir=E9 ou quelque chose du genre). Diego Olivier ------------------- 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