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 Received: from concorde.inria.fr (concorde.inria.fr [192.93.2.39]) by yquem.inria.fr (Postfix) with ESMTP id C85F9BC69 for ; Wed, 27 Jun 2007 00:06:58 +0200 (CEST) Received: from sccmmhc91.asp.att.net (sccmmhc91.asp.att.net [204.127.203.211]) by concorde.inria.fr (8.13.6/8.13.6) with ESMTP id l5QM6utG015635 for ; Wed, 27 Jun 2007 00:06:57 +0200 Received: from [192.168.0.104] (12-208-242-210.client.mchsi.com[12.208.242.210]) by sccmmhc91.asp.att.net (sccmmhc91) with SMTP id <20070626220655m9100d3k6ce>; Tue, 26 Jun 2007 22:06:55 +0000 In-Reply-To: <1B4EC64C-435D-42C5-95F3-C01869DD41FB@rice.edu> References: <1B4EC64C-435D-42C5-95F3-C01869DD41FB@rice.edu> Mime-Version: 1.0 (Apple Message framework v752.3) Content-Type: text/plain; charset=US-ASCII; format=flowed Message-Id: <3950E02A-2393-4307-9F58-28D8CE0CE52C@valdosta.edu> Cc: caml-list@yquem.inria.fr Content-Transfer-Encoding: 7bit From: Jonathan Bryant Subject: Re: [Caml-list] C-like macros in OCaml Date: Tue, 26 Jun 2007 18:06:47 -0400 To: Raj B X-Mailer: Apple Mail (2.752.3) X-Miltered: at concorde with ID 46818E01.000 by Joe's j-chkmail (http://j-chkmail . ensmp . fr)! X-Spam: no; 0.00; c-like:01 ocaml:01 c-like:01 enumeration:01 enum:01 26,:98 2007,:98 wrote:01 caml-list:01 functions:01 macros:01 pair:01 int:01 int:01 variant:02 On Jun 26, 2007, at 6:00 PM, Raj B wrote: > Similarly, is there any way of getting a C-like enumeration? e.g. > > enum days {Mon = 1, Tue, Wed...} You can use a variant and a pair of functions: type weekday = | Monday | Tuesday ... | Sunday let weekday_to_int w = match w with | Monday -> 1 | Tuesday -> 2 ... | Sunday -> 7 let int_to_weekday i = match i with | 1 -> Monday | 2 -> Tuesday ... | 7 -> Sunday | _ -> raise (Invalid_argument "int_to_weekday") --Jonathan