Received: from mail.proteosys.com ([213.139.130.197]) by nummer-3.proteosys with Microsoft SMTPSVC(6.0.3790.3959); Fri, 27 Nov 2009 17:29:55 +0100 Received: by mail.proteosys.com (8.14.3/8.14.3) with ESMTP id nARGTrNQ007841 for ; Fri, 27 Nov 2009 17:29:54 +0100 Received: from listserv.uni-heidelberg.de (listserv.uni-heidelberg.de [129.206.100.94]) by relay.uni-heidelberg.de (8.14.1/8.14.1) with ESMTP id nARGQuUR003444 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Fri, 27 Nov 2009 17:26:56 +0100 Received: from listserv.uni-heidelberg.de (localhost.localdomain [127.0.0.1]) by listserv.uni-heidelberg.de (8.13.1/8.13.1) with ESMTP id nARDV7C0024182; Fri, 27 Nov 2009 17:26:54 +0100 Received: by LISTSERV.UNI-HEIDELBERG.DE (LISTSERV-TCP/IP release 15.5) with spool id 354615 for LATEX-L@LISTSERV.UNI-HEIDELBERG.DE; Fri, 27 Nov 2009 17:26:54 +0100 Received: from relay.uni-heidelberg.de (relay.uni-heidelberg.de [129.206.100.212]) by listserv.uni-heidelberg.de (8.13.1/8.13.1) with ESMTP id nARGQspM018575 for ; Fri, 27 Nov 2009 17:26:54 +0100 Received: from pluto.open.ac.uk (pluto.open.ac.uk [137.108.145.32]) by relay.uni-heidelberg.de (8.14.1/8.14.1) with ESMTP id nARGQchQ001620 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO) for ; Fri, 27 Nov 2009 17:26:42 +0100 Received: from mulberry.open.ac.uk ([137.108.170.73]) by pluto.open.ac.uk with esmtp (Exim 4.69) (envelope-from ) id 1NE3eY-0004nk-4T for LATEX-L@LISTSERV.UNI-HEIDELBERG.DE; Fri, 27 Nov 2009 16:26:38 +0000 Received: from KIELDERCMS1.open.ac.uk ([137.108.140.185]) by mulberry.open.ac.uk ([137.108.170.73]) with mapi; Fri, 27 Nov 2009 16:26:38 +0000 Thread-Topic: object type / instance arguments Thread-Index: Acpveq9ISndHK0McR9aG+lVpSD9MwQAAmK79 References: <19209.8773.325233.396932@morse.mittelbach-online.de> <4B0C694B.1080803@residenset.net> <4B0E8600.6000003@residenset.net>,<19215.63158.760427.5070@morse.mittelbach-online.de> Accept-Language: en-US, en-GB Content-Language: en-GB X-MS-Has-Attach: X-MS-TNEF-Correlator: acceptlanguage: en-US, en-GB Content-Type: text/plain; charset="iso-8859-1" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-MIME-Autoconverted: from quoted-printable to 8bit by listserv.uni-heidelberg.de id nARGQspM018576 Message-ID: Date: Fri, 27 Nov 2009 16:26:37 +0000 Reply-To: Mailing list for the LaTeX3 project Sender: Mailing list for the LaTeX3 project From: "J.Fine" Subject: Re: object type / instance arguments To: LATEX-L@LISTSERV.UNI-HEIDELBERG.DE In-Reply-To: <19215.63158.760427.5070@morse.mittelbach-online.de> Precedence: list List-Help: , List-Unsubscribe: List-Subscribe: List-Owner: List-Archive: X-ProteoSys-SPAM-Score: -6.599 () BAYES_00,RCVD_IN_DNSWL_MED X-Scanned-By: MIMEDefang 2.65 on 213.139.130.197 Return-Path: owner-latex-l@LISTSERV.UNI-HEIDELBERG.DE X-OriginalArrivalTime: 27 Nov 2009 16:29:55.0421 (UTC) FILETIME=[DA66C0D0:01CA6F7E] Status: R X-Status: X-Keywords: X-UID: 6189 Frank wrote: === Lars Hellström writes: > Following up on that: As a proof of concept, I implemented (for > TeX3/LaTeX2e) such a \DictGet command last night; see attached files > (<6K with source documentation and tests). Complexity is linear in the > size of dictionary values, but worst-case quadratic in the average size > of a key. helpful for playing around and checking alternatives, thanks. As to the approach you outlined, I wonder if we should go in this direction. === The quadratic running time may be poison. Once that feature is there, users may use it heavily. It would be sensible to estimate the running time for a dictionary with 100 keys. Here's an alternative suggestion. When TeX boots, do a \fontdimen\nullfont = 100000 to get sufficient linear memory. Now write a 'Turing machine' or 'CPU' that will use this linear memory (in TeX macros of course). One will then be able to implement a linear time dictionary. You might find this suggestion a little unusual but after investigation I think you will find that it gives a better architecture and performance than a pure TeX macros approach. I look forward to discussing this. -- Jonathan The Open University is incorporated by Royal Charter (RC 000391), an exempt charity in England & Wales and a charity registered in Scotland (SC 038302).