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 WAA12376; Mon, 12 Nov 2001 22:05:24 +0100 (MET) 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 WAA11832 for ; Mon, 12 Nov 2001 22:05:23 +0100 (MET) Received: from transmail12.infosources.fr (transmail12.infosources.fr [212.232.33.78]) by concorde.inria.fr (8.11.1/8.10.0) with ESMTP id fACL5Mn17249 for ; Mon, 12 Nov 2001 22:05:22 +0100 (MET) Received: from infonie.fr (mailbox.infonie.fr [195.242.64.77]) by transmail12.infosources.fr (8.11.6/8.11.6) with SMTP id fACL5L101062; Mon, 12 Nov 2001 22:05:21 +0100 (MET) Received: from Utilisateur ( Unverified [195.242.113.149] ) by infonie.fr with SMTP id 27291.3175560.1418505; Mon, 12 Nov 2001 22:05:21 +0100 Message-ID: <00b001c16b58$ea131de0$9571f2c3@Utilisateur> From: "Diego Olivier Fernandez Pons" To: "Remi VANICAT" Cc: "Caml" References: <3BEBDDCA.1060307@francetelecom.com> <87hes1tubf.dlv@wanadoo.fr><005c01c16b0a$3971f860$2d2ce8d4@Utilisateur> <877kswebn6.dlv@wanadoo.fr> Subject: Re: [Caml-list] Great Beginner Date: Mon, 12 Nov 2001 09:13:08 +0100 MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 8bit X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 5.50.4133.2400 X-MimeOLE: Produced By Microsoft MimeOLE V5.50.4133.2400 Sender: owner-caml-list@pauillac.inria.fr Precedence: bulk Je devrais peut-être cesser de poster sur ce forum, je vais réussir à me faire plus d'ennemis que ne doit raisonnablement avoir un homme. Le but de mon message n'était pas de dire que vous ne programmiez pas fonctionnellement, mais d'illustrer un certain nombre de particularités des langages fonctionnels (et que ne possèdent pas tous langages impératifs), c'est en ce sens que j'ai dit que le code que j'exhibais était plus « fonctionnel » ; raison pour laquelle j'ai abordé tour à tour : - la définition des functions avec la syntaxe lambda - la récursivité ascendante et descendante - le pattern matching et utilisation du when - l'instruction trace - les produits cartésiens - les fonctions locales... Le but en était purement pédagogique (puisque le message portait pour titre « great beginner » et que c'était vraisemblablement le cas), d'autant plus que vous aviez déjà illustré dans votre message précédent les structures de contrôle « if then else » et les références. Votre code est bien évidemment parfaitement correct. Moi j'écris plutôt : let somme = function n -> let rec sommeCPS total = function | 0 -> total | k -> sommeCPS (total + k) (k - 1) in sommeCPS 0 n ;; C'est juste une question de style (d'ailleurs je ne respecte pas tout à fait la norme Caml). Diego Olivier ------------------- 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