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 JAA19523; Tue, 13 Nov 2001 09:58:50 +0100 (MET) 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 JAA19915 for ; Tue, 13 Nov 2001 09:58:49 +0100 (MET) Received: from lachesis.inria.fr (lachesis.inria.fr [128.93.52.5]) by concorde.inria.fr (8.11.1/8.10.0) with ESMTP id fAD8wmj01112; Tue, 13 Nov 2001 09:58:48 +0100 (MET) Received: (from lefessan@localhost) by lachesis.inria.fr (8.11.3/8.11.3) id fAD809S16039; Tue, 13 Nov 2001 09:00:09 +0100 X-Authentication-Warning: lachesis.inria.fr: lefessan set sender to fabrice.le_fessant@inria.fr using -f From: Fabrice Le Fessant MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 8bit Message-ID: <15344.54024.333924.7353@lachesis.inria.fr> Date: Tue, 13 Nov 2001 09:00:08 +0100 (CET) To: "Diego Olivier Fernandez Pons" Cc: "Luc Maranget" , "Caml" Subject: Re: [Caml-list] Pattern matching References: <200111121029.LAA0000005433@beaune.inria.fr> <00b101c16b58$eacbbf80$9571f2c3@Utilisateur> X-Mailer: VM 6.75 under Emacs 20.7.1 Reply-To: fabrice.le_fessant@inria.fr Sender: owner-caml-list@pauillac.inria.fr Precedence: bulk > Mon « argumentation » consiste à exhiber de mauvais programmes car je > considère qu'un « bon » langage ne doit pas laisser un mauvais > programmeur faire du mauvais code (dans la mesure du possible). Quand > je dois passer trois heures à relire le code d'une tierce personne et > que je me rends compte que l'erreur est dûe à la fonction suivante : C'est aussi faux que de dire qu'une bonne loi previent tout delit. Qu'est ce qui empechera un mauvais programmeur de croire que ton "match" sans liaison est en fait avec liaison ? Si je pousse a l'extreme, je mets un singe devant mon clavier, et j'envoie des rapports de bugs pour chaque phrase tappee que le compilateur n'accepte pas ? > I was just proposing : > - to use the « match with » syntax for value matching only > - to allow the use of bounded variables in the value matching > - to leave the structure match as it is of course Pourquoi changer ce dont tout le monde a part toi est heureux ? Tu fais du pattern-matching hyper-simple (deux a trois cas sans liaison) qui serait probablement cent fois mieux traite par un "if", et tu rales. Ce n'est pas le programmeur qui s'est plante, c'est celui qui lui a appris qu'il fallait utilise un "match" la ou il aurait du utiliser un "if". Essaie donc de faire du pattern-matching avec 30 cas (un arbre de syntaxe par exemple), et tu te rendras compte que le pattern-matching avec liaison est mille fois plus utile ! Je te vois mal ecrire l'equivalent du compilateur de ocaml avec ce pattern-matching que tu proposes... Exercice 1 d'une modification de syntaxe: prendre un code existant et le traduire dans ta syntaxe. Je te propose de jeter un oeil a typing/typecore.ml ... I was just proposing: - to use << match with >> on complex structures. - to use << if >> on simple structures where no binding is required. - to learn the semantics of a construct before using it. - Fabrice ------------------- 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