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 KAA13409; Fri, 31 Jan 2003 10:35:02 +0100 (MET) X-Authentication-Warning: pauillac.inria.fr: majordomo set sender to owner-caml-list@pauillac.inria.fr using -f Received: (from weis@localhost) by pauillac.inria.fr (8.7.6/8.7.3) id KAA13258 for caml-list@pauillac.inria.fr; Fri, 31 Jan 2003 10:35:02 +0100 (MET) 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 LAA20054 for ; Thu, 30 Jan 2003 11:00:51 +0100 (MET) Received: from pauillac.inria.fr (pauillac.inria.fr [128.93.11.35]) by concorde.inria.fr (8.11.1/8.11.1) with ESMTP id h0UA0or16870; Thu, 30 Jan 2003 11:00:50 +0100 (MET) Received: (from fpottier@localhost) by pauillac.inria.fr (8.7.6/8.7.3) id LAA20364; Thu, 30 Jan 2003 11:00:49 +0100 (MET) Date: Thu, 30 Jan 2003 11:00:49 +0100 From: Francois Pottier To: caml-list@inria.fr Cc: =?iso-8859-1?Q?Fran=E7ois_Pottier?= Subject: [Caml-list] Lexicographic sort Message-ID: <20030130110049.A19993@pauillac.inria.fr> Reply-To: Francois.Pottier@inria.fr Mime-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: 8bit X-Mailer: Mutt 1.0i Sender: owner-caml-list@pauillac.inria.fr Precedence: bulk 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. -- François Pottier Francois.Pottier@inria.fr http://pauillac.inria.fr/~fpottier/ ------------------- 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