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 MAA08429; Wed, 14 Nov 2001 12:35:15 +0100 (MET) X-Authentication-Warning: pauillac.inria.fr: majordomo set sender to owner-caml-list@pauillac.inria.fr using -f 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 MAA08371 for ; Wed, 14 Nov 2001 12:35:15 +0100 (MET) Received: from beaune.inria.fr (beaune.inria.fr [128.93.8.3]) by nez-perce.inria.fr (8.11.1/8.10.0) with ESMTP id fAEBZET15714; Wed, 14 Nov 2001 12:35:14 +0100 (MET) Received: by beaune.inria.fr (8.8.8/1.1.22.3/14Sep99-0328PM) id MAA0000000658; Wed, 14 Nov 2001 12:35:08 +0100 (MET) From: Luc Maranget Message-Id: <200111141135.MAA0000000658@beaune.inria.fr> Subject: Re: [Caml-list] If ou Pattern-matching ? To: FernandezPons@iFrance.com (Diego Olivier Fernandez Pons) Date: Wed, 14 Nov 2001 12:35:08 +0100 (MET) Cc: fabrice.le_fessant@inria.fr, caml-list@inria.fr (Caml) In-Reply-To: <000501c16c9f$9bfe03c0$2d2ce8d4@Utilisateur> from "Diego Olivier Fernandez Pons" at nov 14, 2001 12:57:29 MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: 8bit Sender: owner-caml-list@pauillac.inria.fr Precedence: bulk Je répond en bloc à tout et brièvement. Sans penser que nous (implémenteurs Caml etc.) détenons la science infuse, je crois que notre avis sur comment doit être compris un trait a un certain poids. Donc le filtrage doit être interprété comme je l'ai expliqué dans mon message précédent (prédicat ``<='' + liasons). Ce n'est pas si dur à comprendre. Le mot « sémantique » fait peut être peur, mais ça ne veut rien dire d'autre que « voilà ce que votre programme fait ». Une explication pas trop dure est de dire : voila comment votre filtrage se traduit en ``if'' et en fonction d'accès aux champs let f liste = match liste with | [] -> 0 | x::_ -> x C'est en fait : let f liste = if liste = [] then 0 else let x = car liste in x Où ``car'' est une fonction spéciale qui accède au premier champ d'une cellule de liste. NB le fait que l'on puisse définir ``car'' à l'aide du filtrage ne doit pas nous cacher que, dans le cadre de cette explication ``car'' est ``plus primitif'' que le filtrage. Votre façon de considérer le filtrage est un brin trop compliquée. Non seulement ça n'aiderait pas à concevoir le langage (mais c'est notre problème), mais ça ne vous aide pas a programmer. Maintenant, je reconnais un déficit d'explication sur ce qu'est le filtrage aux utilisateurs et en particulier aux débutants. --Luc Maranget ------------------- Bug reports: http://caml.inria.fr/bin/caml-bugs FAQ: http://caml.inria.fr/FAQ/ To unsubscribe, mail caml-list-request@inria.fr Archives: http://caml.inria.fr