From mboxrd@z Thu Jan 1 00:00:00 1970 Path: main.gmane.org!not-for-mail From: David Kastrup Newsgroups: gmane.emacs.help Subject: Re: alist and multiple values for one key Date: 21 Jan 2003 12:04:19 +0100 Organization: T-Online Sender: help-gnu-emacs-bounces+gnu-help-gnu-emacs=m.gmane.org@gnu.org Message-ID: References: NNTP-Posting-Host: main.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Trace: main.gmane.org 1043147712 22589 80.91.224.249 (21 Jan 2003 11:15:12 GMT) X-Complaints-To: usenet@main.gmane.org NNTP-Posting-Date: Tue, 21 Jan 2003 11:15:12 +0000 (UTC) Return-path: Original-Received: from monty-python.gnu.org ([199.232.76.173]) by main.gmane.org with esmtp (Exim 3.35 #1 (Debian)) id 18awN4-0005qq-00 for ; Tue, 21 Jan 2003 12:15:10 +0100 Original-Received: from localhost ([127.0.0.1] helo=monty-python.gnu.org) by monty-python.gnu.org with esmtp (Exim 4.10.13) id 18awLI-00056A-04 for gnu-help-gnu-emacs@m.gmane.org; Tue, 21 Jan 2003 06:13:20 -0500 Original-Path: shelby.stanford.edu!newsfeed.stanford.edu!bloom-beacon.mit.edu!nycmny1-snh1.gtei.net!nycmny1-snf1.gtei.net!news.gtei.net!colt.net!peernews3.colt.net!newsfeed.stueberl.de!newsfeed01.sul.t-online.de!newsmm00.sul.t-online.com!t-online.de!news.t-online.com!not-for-mail Original-Newsgroups: gnu.emacs.help Original-Lines: 41 Original-X-Trace: news.t-online.com 1043147069 05 11368 w89YEoxTSVAdgr 030121 11:04:29 Original-X-Complaints-To: abuse@t-online.com X-Sender: 520018396234-0001@t-dialin.net X-Face: 2FEFf>]>q>2iw=B6,xrUubRI>pR&Ml9=ao@P@i)L:\urd*t9M~y1^:+Y]'C0~{mAl`oQuAl \!3KEIp?*w`|bL5qr,H)LFO6Q=qx~iH4DN;i"; /yuIsqbLLCh/!U#X[S~(5eZ41to5f%E@'ELIi$t^ Vc\LWP@J5p^rst0+('>Er0=^1{]M9!p?&:\z]|;&=NP3AhB!B_bi^]Pfkw User-Agent: Gnus/5.09 (Gnus v5.9.0) Emacs/21.3.50 Original-Xref: shelby.stanford.edu gnu.emacs.help:109296 Original-To: help-gnu-emacs@gnu.org X-BeenThere: help-gnu-emacs@gnu.org X-Mailman-Version: 2.1b5 Precedence: list List-Id: Users list for the GNU Emacs text editor List-Help: List-Post: List-Subscribe: , List-Archive: List-Unsubscribe: , Errors-To: help-gnu-emacs-bounces+gnu-help-gnu-emacs=m.gmane.org@gnu.org Xref: main.gmane.org gmane.emacs.help:5819 X-Report-Spam: http://spam.gmane.org/gmane.emacs.help:5819 Oliver Scholz writes: > ncauderan@hotmail.com (Norbert C.) writes: > > > Hi, > > > > I would lile to find the "good way" to retrieve multiple values > > for a given key in an alist. > > > > But I didn't find a natural way to do it. For example : > > (setq trees '((pine . cones) (pine . acorns) (oak . acorns) (maple . > > seeds))) > > ==> ((pine . cones) (pine . acorns) (oak . acorns) (maple . seeds)) > > (assoc 'pine trees) > > ==> (pine . cones) > > > > What I'd like is something that returns each value associated with > > 'pine. > > If I don't want to `(require 'cl)' I use something like this: > > (delq nil > (mapcar (lambda (elt) > (if (eq (car elt) 'pine) elt nil)) > mtrees)) > > You see this (delq nil (mapcar ... in Emacs' sources at some places, > too. How does it benchmark against (apply #'append (mapcar (lambda (elt) (and (eq (car elt) 'pine) (list elt))))) ? The latter has the advantage that you don't rip out elements that were nil to start with, but only those that don't match the condition. -- David Kastrup, Kriemhildstr. 15, 44793 Bochum