From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.1.3 (2006-06-01) on yquem.inria.fr X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=disabled version=3.1.3 X-Original-To: caml-list@yquem.inria.fr Delivered-To: caml-list@yquem.inria.fr Received: from concorde.inria.fr (concorde.inria.fr [192.93.2.39]) by yquem.inria.fr (Postfix) with ESMTP id 476B9BC69 for ; Wed, 21 Feb 2007 13:24:33 +0100 (CET) Received: from smtp4-g19.free.fr (smtp4-g19.free.fr [212.27.42.30]) by concorde.inria.fr (8.13.6/8.13.6) with ESMTP id l1LCOW5V032730 for ; Wed, 21 Feb 2007 13:24:33 +0100 Received: from localhost (kerneis.info [82.224.215.18]) by smtp4-g19.free.fr (Postfix) with ESMTP id CFE1366C1E for ; Wed, 21 Feb 2007 13:24:32 +0100 (CET) Received: from localhost ([127.0.0.1] ident=gabriel) by localhost with esmtp (Exim 4.63) (envelope-from ) id 1HJqWM-0001Cn-7G for caml-list@yquem.inria.fr; Wed, 21 Feb 2007 13:24:30 +0100 Date: Wed, 21 Feb 2007 13:24:20 +0100 From: Gabriel Kerneis To: caml-list@yquem.inria.fr Subject: Re: [Caml-list] Combinatorics in a functional way Message-ID: <20070221132420.50cad549@localhost> In-Reply-To: References: <20070221203603.e222647a.mle+ocaml@mega-nerd.com> X-Mailer: Sylpheed-Claws 2.6.0 (GTK+ 2.8.20; i486-pc-linux-gnu) Mime-Version: 1.0 Content-Type: multipart/signed; boundary="Sig_bmlolGEjlg+dWi78E/Auc+Q"; protocol="application/pgp-signature"; micalg=PGP-SHA1 X-Miltered: at concorde with ID 45DC3A00.000 by Joe's j-chkmail (http://j-chkmail . ensmp . fr)! X-Spam: no; 0.00; 0100,:01 recursive:01 rec:01 rec:01 caml-list:01 tail:01 functional:02 let:03 let:03 i'd:05 ecrit:06 wed:06 function:08 nicolas:08 nicolas:08 X-Attachments: type="application/pgp-signature" name="signature.asc" name="signature.asc" --Sig_bmlolGEjlg+dWi78E/Auc+Q Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Le Wed, 21 Feb 2007 12:29:06 +0100, "Nicolas Pouillard" a =E9crit : > So in your case just use a function like range: >=20 > let range n =3D > let rec aux i l =3D > if i =3D 0 then l else i::(aux (i-1) l) > in List.rev ( aux n [] ) > ;; I'd rather use the tail recursive version : let range n =3D let rec aux i l =3D if i =3D 0 then l else aux (i-1) (i::l) in aux n [] ;; --=20 Gabriel Kerneis --Sig_bmlolGEjlg+dWi78E/Auc+Q Content-Type: application/pgp-signature; name=signature.asc Content-Disposition: attachment; filename=signature.asc -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.6 (GNU/Linux) iD8DBQFF3Dn86a2JmXQu5bYRAnxaAJ9CfcZxaXNFavH9GWu8EAFXLDLUOACgg8Dz 5nZj6m2h2gVvN/HMIFaM6Eo= =UETW -----END PGP SIGNATURE----- --Sig_bmlolGEjlg+dWi78E/Auc+Q--