From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Ian Zimmerman Newsgroups: gmane.emacs.help Subject: Re: Structured data in Emacs Lisp Date: 26 Apr 2005 22:35:54 -0700 Message-ID: <87k6mo6ath.fsf@buug.org> References: <87mzrl4gp7.fsf@lse.ac.uk> NNTP-Posting-Host: main.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Trace: sea.gmane.org 1114580517 10146 80.91.229.2 (27 Apr 2005 05:41:57 GMT) X-Complaints-To: usenet@sea.gmane.org NNTP-Posting-Date: Wed, 27 Apr 2005 05:41:57 +0000 (UTC) Original-X-From: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Wed Apr 27 07:41:53 2005 Return-path: Original-Received: from lists.gnu.org ([199.232.76.165]) by ciao.gmane.org with esmtp (Exim 4.43) id 1DQfIO-0005S8-JE for geh-help-gnu-emacs@m.gmane.org; Wed, 27 Apr 2005 07:41:12 +0200 Original-Received: from localhost ([127.0.0.1] helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1DQfOF-0001gH-VU for geh-help-gnu-emacs@m.gmane.org; Wed, 27 Apr 2005 01:47:16 -0400 Original-Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1DQfMp-0001Ar-4S for help-gnu-emacs@gnu.org; Wed, 27 Apr 2005 01:45:47 -0400 Original-Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1DQfMk-00019T-Gh for help-gnu-emacs@gnu.org; Wed, 27 Apr 2005 01:45:46 -0400 Original-Received: from [199.232.76.173] (helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1DQfMj-0000pJ-Fd for help-gnu-emacs@gnu.org; Wed, 27 Apr 2005 01:45:41 -0400 Original-Received: from [198.144.194.12] (helo=disorder.primate.net) by monty-python.gnu.org with esmtp (TLS-1.0:DHE_RSA_3DES_EDE_CBC_SHA:24) (Exim 4.34) id 1DQfH1-0003Sq-Nn for help-gnu-emacs@gnu.org; Wed, 27 Apr 2005 01:39:48 -0400 Original-Received: from disorder.primate.net (itz@localhost [127.0.0.1]) by disorder.primate.net (8.13.4/8.13.4/Debian-1) with ESMTP id j3R5ZtlE023083 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NOT) for ; Tue, 26 Apr 2005 22:35:55 -0700 Original-Received: from localhost (localhost [[UNIX: localhost]]) by disorder.primate.net (8.13.4/8.13.4/Submit) id j3R5ZtGO023082 for help-gnu-emacs@gnu.org; Tue, 26 Apr 2005 22:35:55 -0700 X-Authentication-Warning: disorder.primate.net: itz set sender to itz@buug.org using -f Original-Received: from itz by unicorn with local (Exim 3.36 #1 (Debian)) id 1DQfDG-0001Bw-00; Tue, 26 Apr 2005 22:35:54 -0700 Original-To: help-gnu-emacs@gnu.org X-Unicorn-Archive: yes In-Reply-To: <87mzrl4gp7.fsf@lse.ac.uk> Original-Lines: 25 User-Agent: Gnus/5.09 (Gnus v5.9.0) Emacs/21.4 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-1.6 (disorder.primate.net [127.0.0.1]); Tue, 26 Apr 2005 22:35:55 -0700 (PDT) X-BeenThere: help-gnu-emacs@gnu.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Users list for the GNU Emacs text editor List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Original-Sender: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Errors-To: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.help:26080 X-Report-Spam: http://spam.gmane.org/gmane.emacs.help:26080 Denis> You could use a plist: Denis> Denis> (:key1 1 :key2 2) Denis> Denis> Then to get a particular value: Denis> Denis> (getf '(:key1 1 :key2 2) :key1) => 1 Denis> Jim> Or you could use defstruct [also in 'cl] I don't know how many different structures you have. If not too many, I would just use lists (or even better, vectors) and for each field define an accessor macro: (defsubst get-key1 (result) (nth 0 result)) or (defsubst get-key1 (result) (aref result 0)) -- Optimist: We're only two weeks behind schedule. Pessimist: The schedule is a whole two weeks ahead of us.