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 LAA15217; Fri, 31 Jan 2003 11:34:14 +0100 (MET) X-Authentication-Warning: pauillac.inria.fr: majordomo set sender to owner-caml-list@pauillac.inria.fr using -f 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 LAA15413 for ; Fri, 31 Jan 2003 11:34:13 +0100 (MET) Received: from feu.irisa.fr (feu.irisa.fr [131.254.60.80]) by nez-perce.inria.fr (8.11.1/8.11.1) with ESMTP id h0VAYCP14066; Fri, 31 Jan 2003 11:34:12 +0100 (MET) Received: from cafe.irisa.fr (cafe.irisa.fr [131.254.22.19]) by feu.irisa.fr (8.11.4/8.11.4) with ESMTP id h0VAXYk17680; Fri, 31 Jan 2003 11:33:34 +0100 (MET) Date: Fri, 31 Jan 2003 11:33:34 +0100 (CET) From: Laurent Vibert To: Francois Pottier cc: caml-list@inria.fr Subject: Re: [Caml-list] Lexicographic sort In-Reply-To: <20030130110049.A19993@pauillac.inria.fr> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII X-MailScanner: Found to be clean Sender: owner-caml-list@pauillac.inria.fr Precedence: bulk On Thu, 30 Jan 2003, Francois Pottier wrote: > > Hi, > > I just found a nice way of writing lexicographic sort in O'Caml > using Luc Maranget's recent extension of pattern syntax, which > allows a single identifier to be bound in several alternatives. > > For instance, here is code that sorts integer triples: > > let compare (major1, middle1, minor1) (major2, middle2, minor2) = > match major1 - major2, middle1 - middle2, minor1 - minor2 with > | 0, 0, d > | 0, d, _ > | d, _, _ -> > d > > Quite beautiful. Perhaps this is obvious to many, but I thought > I'd post it. > Warning, from the Caml manual, http://pauillac.inria.fr/ocaml/htmlman/manual014.html ``Or'' patterns : If both matchings succeed, it is undefined which set of bindings is selected eg. if (0,0,d) and (d,_,_) succeed, you don't hnow the result... yes in this case, it works, but in some other, it doesn't : let f = function (_::l) | l -> l in f [1;2] ------------------- 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