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 SAA06881; Wed, 8 Oct 2003 18:07:33 +0200 (MET DST) Received: from nez-perce.inria.fr (nez-perce.inria.fr [192.93.2.78]) by pauillac.inria.fr (8.7.6/8.7.3) with ESMTP id SAA07350 for ; Wed, 8 Oct 2003 18:07:32 +0200 (MET DST) Received: from hugh.cs.washington.edu (hugh.cs.washington.edu [128.208.2.43]) by nez-perce.inria.fr (8.11.1/8.11.1) with ESMTP id h98G7U104025 for ; Wed, 8 Oct 2003 18:07:30 +0200 (MET DST) Received: from cs.washington.edu (gerald.cs.washington.edu [128.208.2.33]) by hugh.cs.washington.edu (8.12.9/8.12.9/1.2+) with ESMTP id h98G7OwT021789; Wed, 8 Oct 2003 09:07:26 -0700 (envelope-from djg@cs.washington.edu) X-Authentication-Warning: hugh.cs.washington.edu: Host gerald.cs.washington.edu [128.208.2.33] claimed to be cs.washington.edu Message-ID: <3F843648.3030200@cs.washington.edu> Date: Wed, 08 Oct 2003 09:07:36 -0700 From: Dan Grossman User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.4) Gecko/20030624 Netscape/7.1 (ax) X-Accept-Language: en-us, en MIME-Version: 1.0 To: Serge CC: caml-list@inria.fr Subject: Re: [Caml-list] Constructors as functions and tuples in constructors References: In-Reply-To: Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-Loop: caml-list@inria.fr X-Spam: no; 0.00; grossman:01 caml-list:01 parens:01 --dan:01 int:01 int:01 constructors:01 constructors:01 match:02 match:02 arity:03 wrote:03 constructor:03 let:04 trivially:05 Sender: owner-caml-list@pauillac.inria.fr Precedence: bulk Serge wrote: > First, it would be nice to have constructors as functions like below: > > List. map Some [17] Leads to strange error messages and is trivially circumventable (replace Some with fun x -> Some x) > Second, it would also be nice not to have "the concept of constructor > arity", and treat the code below as correct: > > type t = A of int * int > let _ = > match A (17, 0) with > A z -> match z with (x, y) -> () Works with type t = A of (int * int). You put the parens in. So the choice is yours. The advantage of leaving them out is usually performance. Others can give the long version of these answers... --Dan ------------------- To unsubscribe, mail caml-list-request@inria.fr Archives: http://caml.inria.fr Bug reports: http://caml.inria.fr/bin/caml-bugs FAQ: http://caml.inria.fr/FAQ/ Beginner's list: http://groups.yahoo.com/group/ocaml_beginners