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 JAA07938; Wed, 25 Apr 2001 09:03:10 +0200 (MET DST) 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 JAA08254 for ; Wed, 25 Apr 2001 09:03:09 +0200 (MET DST) Received: from ext.lri.fr (ext.lri.fr [129.175.15.4]) by concorde.inria.fr (8.11.1/8.10.0) with ESMTP id f3P733X04997 for ; Wed, 25 Apr 2001 09:03:03 +0200 (MET DST) Received: from pc803.lri.fr (IDENT:root@pc803 [129.175.8.114]) by ext.lri.fr (8.11.1/jtpda-5.3.2) with ESMTP id f3P72w500604 ; Wed, 25 Apr 2001 09:02:59 +0200 (MET DST) Received: by pc803.lri.fr (8.9.3/feuille) id JAA31321 ; Wed, 25 Apr 2001 09:02:59 +0200 X-Authentication-Warning: localhost.localdomain: filliatr set sender to filliatr@pc803 using -f From: Jean-Christophe Filliatre MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: 8bit Message-ID: <15078.30371.456286.292131@pc803> Date: Wed, 25 Apr 2001 09:02:59 +0200 (MEST) To: =?iso-8859-1?Q?St=E9phane_Baubillier?= Cc: , Subject: Re: [Caml-list] crible d'eratosthene In-Reply-To: <005801c0b48c$d545b3b0$290000c0@pactenovation.fr> References: <00b301c0ccd3$4ab956c0$a3f1fea9@fr> <005801c0b48c$d545b3b0$290000c0@pactenovation.fr> X-Mailer: VM 6.49 under Emacs 20.4.1 Reply-To: Jean-Christophe.Filliatre@lri.fr (Jean-Christophe Filliatre) Sender: owner-caml-list@pauillac.inria.fr Precedence: bulk Just a minor remark: it is more natural (and more concise) to write Eratosthene's sieve using Ocaml streams and their lazy evaluation, like this ====================================================================== let rec filter p = parser [< 'n; s >] -> if p n then [< 'n; filter p s >] else [< filter p s >] let naturals = let rec gen n = [< 'n; gen (succ n) >] in gen 2 let primes = let rec sieve = parser [< 'n; s >] -> [< 'n; sieve (filter (fun m -> m mod n <> 0) s) >] in sieve naturals ====================================================================== -- Jean-Christophe FILLIATRE mailto:Jean-Christophe.Filliatre@lri.fr http://www.lri.fr/~filliatr =?iso-8859-1?Q?St=E9phane_Baubillier?= writes: > Here is an example : > > http://caml.inria.fr/Examples/cl/basics/sieve.ml > > Stephane Baubillier > Pacte Novation > > ----- Original Message ----- > From: > To: > Sent: Tuesday, April 24, 2001 3:29 PM > Subject: [Caml-list] crible d'eratosthene > > > > Bonjour, > > Je suis nouveau ici et en apprentissage sur le langage CAML. > > Je suis à la recherche d'un exemple très simple utilisant que des fonctions > de base (listes, pas de boucle) recursivité, concernant le crible > d'eratosthene. J'ai trouvé sur le net des exemples mais rien d'assez simple. > > Exemple en clair: > > J'ai une liste [1;2;3;4;5;6;7;8;9;10;11;12] > une liste vide qui doit contenir les nombres premiers. > > 1/ On extrait la tete de la liste (2) pour l'ajouter à la liste des nombres > premiers (initialement vide) > 2/ On supprime de la liste des nombres tous les multiples du nombre extrait > lors de l'étape 1 > 3/ On recommence les étapes 1 et 2 jusqu'à obtention d'une liste vide. > > Si qq peut me faire parvenir un source rapidement, je lui en serait très > reconnaissant !!! > > Cordialement > > CP. > > ------------------- > To unsubscribe, mail caml-list-request@inria.fr. Archives: > http://caml.inria.fr > > ------------------- > To unsubscribe, mail caml-list-request@inria.fr. Archives: http://caml.inria.fr ------------------- To unsubscribe, mail caml-list-request@inria.fr. Archives: http://caml.inria.fr