From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: 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 2A128BB81 for ; Fri, 2 Dec 2005 19:14:38 +0100 (CET) Received: from mailx.valdosta.edu (mailx.valdosta.edu [168.18.130.251]) by concorde.inria.fr (8.13.0/8.13.0) with ESMTP id jB2IEbIG010125 for ; Fri, 2 Dec 2005 19:14:37 +0100 Received: from blazemail.valdosta.edu (VO44216.valdosta.edu [168.18.130.208]) by mailx.valdosta.edu (8.13.4/8.13.4) with ESMTP id jB2IELvD003315 for ; Fri, 2 Dec 2005 13:14:36 -0500 (EST) (envelope-from jtbryant@valdosta.edu) Disposition-Notification-To: jtbryant@valdosta.edu Received: from luminis (luminis [168.18.130.219]) by blazemail.valdosta.edu (iPlanet Messaging Server 5.2 HotFix 2.04 (built Feb 8 2005)) with SMTP id <0IQU005BUTGM95@blazemail.valdosta.edu> for caml-list@yquem.inria.fr; Thu, 01 Dec 2005 23:50:46 -0500 (EST) Date: Thu, 01 Dec 2005 23:50:46 -0500 (EST) From: Jonathan T Bryant Subject: RE: Multi-index Container To: caml-list@yquem.inria.fr Message-id: <6997057.1133499046520.JavaMail.lumadmin@luminis> MIME-version: 1.0 Content-type: multipart/mixed; boundary="Boundary_(ID_gD0/T43+XmweMxU8W/H5Rw)" X-PMX-Version: 5.0.2.153301, Antispam-Engine: 2.0.3.2, Antispam-Data: 2005.12.2.18 X-Miltered: at concorde with ID 43908F0D.000 by Joe's j-chkmail (http://j-chkmail.ensmp.fr)! X-Spam: no; 0.00; lls:98 structures:01 data:02 edu:07 edu:07 something:13 left:85 attached:14 code:17 ...:82 reader:19 214:79 bryant:23 bryant:23 jonathan:23 X-Attachments: cset="UTF-8" type="application/octet-stream" name="multiSort.ml" name="multiSort.ml" X-Spam-Checker-Version: SpamAssassin 3.0.3 (2005-04-27) on yquem.inria.fr X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=disabled version=3.0.3 --Boundary_(ID_gD0/T43+XmweMxU8W/H5Rw) Content-type: text/plain; charset=UTF-8 Content-transfer-encoding: 7BIT How about something like the attached code? Completing the data structures is left as an exercise for the reader... :) ----------------------- --Jonathan Bryant jtbryant@valdosta.edu AIM: JonBoy3182 OAS AAS LLS ZG214 --Boundary_(ID_gD0/T43+XmweMxU8W/H5Rw) Content-type: application/octet-stream; name=multiSort.ml Content-transfer-encoding: base64 Content-disposition: attachment; filename=multiSort.ml x-cp-file-size: 5415 bW9kdWxlIERhdGFzZXQgOgogIHNpZwogICAgdHlwZSAnYSB0CiAgICB2YWwgY3JlYXRlIDogdW5p dCAtPiAnYSB0CiAgICB2YWwgYWRkIDogJ2EgdCAtPiAnYSAtPiBpbnQKICAgIHZhbCByZW1vdmUg OiAnYSB0IC0+IGludCAtPiAnYQogICAgdmFsIGluc3BlY3QgOiAnYSB0IC0+IGludCAtPiAnYQog ICAgdmFsIGNsZWFyIDogJ2EgdCAtPiB1bml0CiAgICB2YWwgcmVnaXN0ZXJfYWRkX29ic2VydmVy IDogJ2EgdCAtPiAoaW50IC0+ICdhIC0+IHVuaXQpIC0+IHVuaXQKICAgIHZhbCB1bnJlZ2lzdGVy X2FkZF9vYnNlcnZlciA6ICdhIHQgLT4gKGludCAtPiAnYSAtPiB1bml0KSAtPiB1bml0CiAgICB2 YWwgcmVnaXN0ZXJfcmVtb3ZlX29ic2VydmVyIDogJ2EgdCAtPiAoaW50IC0+ICdhIC0+IHVuaXQp IC0+IHVuaXQKICAgIHZhbCB1bnJlZ2lzdGVyX3JlbW92ZV9vYnNlcnZlciA6ICdhIHQgLT4gKGlu dCAtPiAnYSAtPiB1bml0KSAtPiB1bml0CiAgZW5kID0gc3RydWN0CiAgICB0eXBlICdhIHQgPSB7 CiAgICAgIG11dGFibGUgZGF0YSA6IChpbnQsICdhKSBIYXNodGJsLnQ7CiAgICAgIG11dGFibGUg YWRkX29ic2VydmVycyA6IChpbnQgLT4gJ2EgLT4gdW5pdCkgbGlzdDsKICAgICAgbXV0YWJsZSBy ZW1vdmVfb2JzZXJ2ZXJzIDogKGludCAtPiAnYSAtPiB1bml0KSBsaXN0CiAgICB9CiAgICBsZXQg Y3JlYXRlICgpID0gewogICAgICBkYXRhID0gSGFzaHRibC5jcmVhdGUgMjk7CiAgICAgIGFkZF9v YnNlcnZlcnMgPSBbXTsKICAgICAgcmVtb3ZlX29ic2VydmVycyA9IFtdCiAgICB9CiAgICBsZXQg YWRkIGRzIGUgPQogICAgICBsZXQgaWR4ID0gKEhhc2h0YmwubGVuZ3RoIGRzLmRhdGEpICsgMSBp bgogICAgICBIYXNodGJsLmFkZCBkcy5kYXRhIGlkeCBlOwogICAgICBMaXN0Lml0ZXIgKGZ1biBm IC0+IGYgaWR4IGUpIGRzLmFkZF9vYnNlcnZlcnM7CiAgICAgIGlkeAogICAgbGV0IHJlbW92ZSBk cyBpZHggPQogICAgICBsZXQgZSA9IEhhc2h0YmwuZmluZCBkcy5kYXRhIGlkeCBpbgogICAgICBI YXNodGJsLnJlbW92ZSBkcy5kYXRhIGlkeDsKICAgICAgTGlzdC5pdGVyIChmdW4gZiAtPiBmIGlk eCBlKSBkcy5yZW1vdmVfb2JzZXJ2ZXJzOwogICAgICBlCiAgICBsZXQgaW5zcGVjdCBkcyBpZHgg PSBIYXNodGJsLmZpbmQgZHMuZGF0YSBpZHgKICAgIGxldCBjbGVhciBkcyA9CiAgICAgIEhhc2h0 YmwuaXRlciAoZnVuIGlkeCAtPiBmdW4gZSAtPgogICAgICAgIExpc3QuaXRlciAoZnVuIGYgLT4g ZiBpZHggZSkgZHMucmVtb3ZlX29ic2VydmVyczsKICAgICAgICBIYXNodGJsLnJlbW92ZSBkcy5k YXRhIGlkeAogICAgICApIGRzLmRhdGEKICAgIGxldCByZWdpc3Rlcl9hZGRfb2JzZXJ2ZXIgZHMg ZiA9CiAgICAgIGRzLmFkZF9vYnNlcnZlcnMgPC0gKGY6OmRzLmFkZF9vYnNlcnZlcnMpCiAgICBs ZXQgdW5yZWdpc3Rlcl9hZGRfb2JzZXJ2ZXIgZHMgZiA9CiAgICAgIGRzLmFkZF9vYnNlcnZlcnMg PC0gTGlzdC5maWx0ZXIgKGZ1biBvIC0+CiAgICAgICAgaWYgZiA9IG8KICAgICAgICB0aGVuIGZh bHNlCiAgICAgICAgZWxzZSB0cnVlKSBkcy5hZGRfb2JzZXJ2ZXJzCiAgICBsZXQgcmVnaXN0ZXJf cmVtb3ZlX29ic2VydmVyIGRzIGYgPQogICAgICBkcy5yZW1vdmVfb2JzZXJ2ZXJzIDwtIChmOjpk cy5yZW1vdmVfb2JzZXJ2ZXJzKQogICAgbGV0IHVucmVnaXN0ZXJfcmVtb3ZlX29ic2VydmVyIGRz IGYgPQogICAgICBkcy5yZW1vdmVfb2JzZXJ2ZXJzIDwtIExpc3QuZmlsdGVyIChmdW4gbyAtPgog ICAgICAgIGlmIGYgPSBvCiAgICAgICAgdGhlbiBmYWxzZQogICAgICAgIGVsc2UgdHJ1ZSkgZHMu cmVtb3ZlX29ic2VydmVycwogIGVuZAoKbW9kdWxlIERTTGlzdCA6CiAgc2lnCiAgICB0eXBlICdh IHQKICAgIHZhbCBjcmVhdGUgOiAnYSBEYXRhc2V0LnQgLT4gJ2EgdAogICAgdmFsIGNvbnMgOiAn YSB0IC0+ICdhIC0+IHVuaXQKICAgIHZhbCBoZCA6ICdhIHQgLT4gJ2EKICAgIHZhbCBudGggOiAn YSB0IC0+IGludCAtPiAnYQogICAgdmFsIHJldiA6ICdhIHQgLT4gdW5pdAogICAgdmFsIGl0ZXIg OiAoJ2EgLT4gdW5pdCkgLT4gJ2EgdCAtPiB1bml0CiAgICB2YWwgZGVzdHJveSA6ICdhIHQgLT4g dW5pdAogIGVuZCA9IHN0cnVjdAogICAgdHlwZSAnYSB0ID0gewogICAgICBkYXRhIDogJ2EgRGF0 YXNldC50OwogICAgICBtdXRhYmxlIHJlcHIgOiBpbnQgbGlzdAogICAgfQogICAgbGV0IGFkZF9s aXN0ZW5lciBsIGlkeCBlID0KICAgICAgbC5yZXByIDwtIChpZHg6OmwucmVwcikKICAgIGxldCBy ZW1vdmVfbGlzdGVuZXIgbCBpZHggZSA9CiAgICAgIGwucmVwciA8LSAoTGlzdC5maWx0ZXIgKGZ1 biB4IC0+IGlmIHggPSBpZHggdGhlbiBmYWxzZSBlbHNlIHRydWUpIGwucmVwcikKICAgIGxldCBj cmVhdGUgZHMgPQogICAgICBsZXQgc2VsZiA9IHsgZGF0YSA9IGRzOyByZXByID0gW10gfSBpbgog ICAgICBEYXRhc2V0LnJlZ2lzdGVyX2FkZF9vYnNlcnZlciBkcyAoYWRkX2xpc3RlbmVyIHNlbGYp OwogICAgICBEYXRhc2V0LnJlZ2lzdGVyX3JlbW92ZV9vYnNlcnZlciBkcyAocmVtb3ZlX2xpc3Rl bmVyIHNlbGYpOwogICAgICBzZWxmCiAgICBsZXQgY29ucyBsIGUgPSBsZXQgXyA9IERhdGFzZXQu YWRkIGwuZGF0YSBlIGluICgpCiAgICBsZXQgaGQgbCA9IERhdGFzZXQuaW5zcGVjdCBsLmRhdGEg KExpc3QuaGQgbC5yZXByKQogICAgbGV0IG50aCBsIGlkeCA9IERhdGFzZXQuaW5zcGVjdCBsLmRh dGEgKExpc3QubnRoIGwucmVwciBpZHgpCiAgICBsZXQgcmV2IGwgPSBsLnJlcHIgPC0gKExpc3Qu cmV2IGwucmVwcikKICAgIGxldCBpdGVyIGYgbCA9IExpc3QuaXRlciAoZnVuIGlkeCAtPiBmIChE YXRhc2V0Lmluc3BlY3QgbC5kYXRhIGlkeCkpIGwucmVwcgogICAgbGV0IGRlc3Ryb3kgbCA9CiAg ICAgIERhdGFzZXQudW5yZWdpc3Rlcl9hZGRfb2JzZXJ2ZXIgbC5kYXRhIChhZGRfbGlzdGVuZXIg bCk7CiAgICAgIERhdGFzZXQudW5yZWdpc3Rlcl9yZW1vdmVfb2JzZXJ2ZXIgbC5kYXRhIChyZW1v dmVfbGlzdGVuZXIgbCkKICBlbmQKCm1vZHVsZSBEU1NvcnRlZExpc3QgOgogIHNpZwogICAgdHlw ZSAnYSB0CiAgICB2YWwgY3JlYXRlIDogJ2EgRGF0YXNldC50IC0+ICdhIHQKICAgIHZhbCBjb25z IDogJ2EgdCAtPiAnYSAtPiB1bml0CiAgICB2YWwgaGQgOiAnYSB0IC0+ICdhCiAgICB2YWwgbnRo IDogJ2EgdCAtPiBpbnQgLT4gJ2EKICAgIHZhbCBpdGVyIDogKCdhIC0+IHVuaXQpIC0+ICdhIHQg LT4gdW5pdAogICAgdmFsIGRlc3Ryb3kgOiAnYSB0IC0+IHVuaXQKICBlbmQgPSBzdHJ1Y3QKICAg IHR5cGUgJ2EgdCA9IHsKICAgICAgZGF0YSA6ICdhIERhdGFzZXQudDsKICAgICAgbXV0YWJsZSBy ZXByIDogaW50IGxpc3QKICAgIH0KICAgIGxldCBhZGRfbGlzdGVuZXIgbCBpZHggZSA9CiAgICAg IGwucmVwciA8LSAoTGlzdC5zb3J0IChmdW4geCAtPiBmdW4geSAtPgogICAgICAgIGNvbXBhcmUg KERhdGFzZXQuaW5zcGVjdCBsLmRhdGEgeCkgKERhdGFzZXQuaW5zcGVjdCBsLmRhdGEgeSkKICAg ICAgKSAoaWR4OjpsLnJlcHIpKQogICAgbGV0IHJlbW92ZV9saXN0ZW5lciBsIGlkeCBlID0KICAg ICAgbC5yZXByIDwtIChMaXN0LmZpbHRlciAoZnVuIHggLT4gaWYgeCA9IGlkeCB0aGVuIGZhbHNl IGVsc2UgdHJ1ZSkgbC5yZXByKQogICAgbGV0IGNyZWF0ZSBkcyA9CiAgICAgIGxldCBzZWxmID0g eyBkYXRhID0gZHM7IHJlcHIgPSBbXSB9IGluCiAgICAgIERhdGFzZXQucmVnaXN0ZXJfYWRkX29i c2VydmVyIGRzIChhZGRfbGlzdGVuZXIgc2VsZik7CiAgICAgIERhdGFzZXQucmVnaXN0ZXJfcmVt b3ZlX29ic2VydmVyIGRzIChyZW1vdmVfbGlzdGVuZXIgc2VsZik7CiAgICAgIHNlbGYKICAgIGxl dCBjb25zIGwgZSA9IGxldCBfID0gRGF0YXNldC5hZGQgbC5kYXRhIGUgaW4gKCkKICAgIGxldCBo ZCBsID0gRGF0YXNldC5pbnNwZWN0IGwuZGF0YSAoTGlzdC5oZCBsLnJlcHIpCiAgICBsZXQgbnRo IGwgaWR4ID0gRGF0YXNldC5pbnNwZWN0IGwuZGF0YSAoTGlzdC5udGggbC5yZXByIGlkeCkKICAg IGxldCBpdGVyIGYgbCA9IExpc3QuaXRlciAoZnVuIGlkeCAtPiBmIChEYXRhc2V0Lmluc3BlY3Qg bC5kYXRhIGlkeCkpIGwucmVwcgogICAgbGV0IGRlc3Ryb3kgbCA9CiAgICAgIERhdGFzZXQudW5y ZWdpc3Rlcl9hZGRfb2JzZXJ2ZXIgbC5kYXRhIChhZGRfbGlzdGVuZXIgbCk7CiAgICAgIERhdGFz ZXQudW5yZWdpc3Rlcl9yZW1vdmVfb2JzZXJ2ZXIgbC5kYXRhIChyZW1vdmVfbGlzdGVuZXIgbCkK ICBlbmQKCgpsZXQgcHJpbnRfZHNfbGlzdCBsID0KICBQcmludGYucHJpbnRmICJbICI7CiAgRFNM aXN0Lml0ZXIgKGZ1biB4IC0+IFByaW50Zi5wcmludGYgIiVzOyAiIHgpIGw7CiAgUHJpbnRmLnBy aW50ZiAiXVxuIgoKbGV0IHByaW50X2RzX3NvcnRlZF9saXN0IGwgPQogIFByaW50Zi5wcmludGYg IlsgIjsKICBEU1NvcnRlZExpc3QuaXRlciAoZnVuIHggLT4gUHJpbnRmLnByaW50ZiAiJXM7ICIg eCkgbDsKICBQcmludGYucHJpbnRmICJdXG4iCgpsZXQgdGVzdF90ZXh0ID0gWyJmb3VyIjsgInNj b3JlIjsgImFuZCI7ICJzZXZlbiI7ICJ5ZWFycyI7ICJhZ28iOyAib3VyIjsKImZhdGhlcnMiOyAi YnJvdWdodCI7ICJmb3J0aCI7ICJ1cG9uIjsgInRoaXMiOyAiY29udGluZW50IjsgImEiOyAibmV3 IjsKIm5hdGlvbiI7ICJjb25jaWV2ZWQiOyAiaW4iOyAibGliZXJ0eSI7ICJhbmQiOyAiZGVkaWNh dGVkIjsgInRvIjsgInRoZSI7CiJwcm9wb3NpdGlvbiI7ICJ0aGF0IjsgImFsbCI7ICJtZW4iOyAi YXJlIjsgImNyZWF0ZWQiOyAiZXF1YWwiOyAid2UiOyAiYXJlIjsKIm5vdyI7ICJlbmdhZ2VkIjsg ImluIjsgImEiOyAiZ3JlYXQiOyAiY2l2aWwiOyAid2FyIjsgInRlc3RpbmciOyAid2hldGhlciI7 CiJ0aGF0IjsgIm5hdGlvbiI7ICJvciI7ICJhbnkiOyAibmF0aW9uIjsgInNvIjsgImNvbmNpZXZl ZCI7ICJjYW4iOyAic3Vydml2ZSI7CiJ3ZSI7ICJhcmUiOyAibWV0IjsgIm9uIjsgImEiOyAiZ3Jl YXQiOyAiYmF0dGxlZmllbGQiOyAib2YiOyAidGhhdCI7ICJ3YXIiXQoKbGV0ICgpID0KICBsZXQg ZHMgPSBEYXRhc2V0LmNyZWF0ZSAoKSBpbgogIGxldCBkc2wxID0gRFNMaXN0LmNyZWF0ZSBkcyBp bgogIGxldCBkc2wyID0gRFNTb3J0ZWRMaXN0LmNyZWF0ZSBkcyBpbgogIFByaW50Zi5wcmludGYg IkVtcHR5IExpc3RzOlxuIjsKICBwcmludF9kc19saXN0IGRzbDE7CiAgcHJpbnRfZHNfc29ydGVk X2xpc3QgZHNsMjsKICBMaXN0Lml0ZXIgKGZ1biB3IC0+CiAgICBEU0xpc3QuY29ucyBkc2wxIHc7 CiAgICBQcmludGYucHJpbnRmICJBZGRlZCB3b3JkIFwiJXNcIjpcbiIgdzsKICAgIHByaW50X2Rz X2xpc3QgZHNsMTsKICAgIHByaW50X2RzX3NvcnRlZF9saXN0IGRzbDIKICApIHRlc3RfdGV4dDsK --Boundary_(ID_gD0/T43+XmweMxU8W/H5Rw)--