From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: pjb@informatimago.com (Pascal J. Bourguignon) Newsgroups: gmane.emacs.help Subject: Re: case or cond Date: Sun, 11 Oct 2009 19:22:17 +0200 Organization: Informatimago Message-ID: <87skdprgl2.fsf@galatea.local> References: NNTP-Posting-Host: lo.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: 8bit X-Trace: ger.gmane.org 1255282863 29877 80.91.229.12 (11 Oct 2009 17:41:03 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Sun, 11 Oct 2009 17:41:03 +0000 (UTC) To: help-gnu-emacs@gnu.org Original-X-From: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Sun Oct 11 19:40:53 2009 Return-path: Envelope-to: geh-help-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([199.232.76.165]) by lo.gmane.org with esmtp (Exim 4.50) id 1Mx2Pb-0004YE-EJ for geh-help-gnu-emacs@m.gmane.org; Sun, 11 Oct 2009 19:40:51 +0200 Original-Received: from localhost ([127.0.0.1]:57406 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1Mx2Pa-0004A1-Ih for geh-help-gnu-emacs@m.gmane.org; Sun, 11 Oct 2009 13:40:50 -0400 Original-Path: news.stanford.edu!usenet.stanford.edu!fu-berlin.de!uni-berlin.de!individual.net!not-for-mail Original-Newsgroups: gnu.emacs.help Original-Lines: 34 Original-X-Trace: individual.net 49y8cHSTLemGBySJUNs2MQkXi3MidCBJEw46B8ioNd5Ejbb54l Cancel-Lock: sha1:MjVlMGE5YThiOTU2Y2JlOTNkMjYyYzBiZDY5MDg5ZWEyMjk1MjU1Yw== sha1:RqEi8fu2nDkdOAJQlt5mraKfSCs= Face: iVBORw0KGgoAAAANSUhEUgAAADAAAAAwAQMAAABtzGvEAAAABlBMVEUAAAD///+l2Z/dAAAA oElEQVR4nK3OsRHCMAwF0O8YQufUNIQRGIAja9CxSA55AxZgFO4coMgYrEDDQZWPIlNAjwq9 033pbOBPtbXuB6PKNBn5gZkhGa86Z4x2wE67O+06WxGD/HCOGR0deY3f9Ijwwt7rNGNf6Oac l/GuZTF1wFGKiYYHKSFAkjIo1b6sCYS1sVmFhhhahKQssRjRT90ITWUk6vvK3RsPGs+M1RuR mV+hO/VvFAAAAABJRU5ErkJggg== X-Accept-Language: fr, es, en X-Disabled: X-No-Archive: no User-Agent: Gnus/5.1008 (Gnus v5.10.8) Emacs/22.3 (darwin) Original-Xref: news.stanford.edu gnu.emacs.help:173760 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:68844 Archived-At: Nordlöw writes: > Is case more inefficient than cond? > > Does it depend on what kinds of objects that are compared? Notice that case documentation says that: Key values are compared by `eql'. So: (case expr (v1 e1) ((v21 ... v2p) e2) ... (otherwise eo)) is equivalent to: (let ((e expr)) (cond ((eql e v1) e1) ((memq e '(v21 ... v2p)) e2) ... (t eo))) If your cond is not of that form, then it's hardly comparable to case. On the other hand if it is, then indeed, case might be faster, because it isn't necessarily implemented as a sequence of tests like cond. -- __Pascal Bourguignon__