From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Emanuel Berg Newsgroups: gmane.emacs.help Subject: Re: member returns list (was: Re: To `boundp' or not to `boundp'?) Date: Wed, 02 Sep 2015 23:20:48 +0200 Message-ID: <871tegldqn.fsf@debian.uxu> References: <55E5C99B.3020608@yandex.ru> <87lhcpu2wb.fsf_-_@debian.uxu> <3c9412c3-3fff-446c-9e55-e8169b6a913d@default> <87zj15r7gs.fsf@debian.uxu> <75212b6a-133a-401a-8051-3931a7a40958@default> <87r3mhr55z.fsf@debian.uxu> <2d84e377-3f73-48f0-b351-6ca5b94d6f47@default> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain X-Trace: ger.gmane.org 1441229792 25634 80.91.229.3 (2 Sep 2015 21:36:32 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Wed, 2 Sep 2015 21:36:32 +0000 (UTC) To: help-gnu-emacs@gnu.org Original-X-From: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Wed Sep 02 23:36:23 2015 Return-path: Envelope-to: geh-help-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by plane.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1ZXFhd-0004Re-7H for geh-help-gnu-emacs@m.gmane.org; Wed, 02 Sep 2015 23:36:21 +0200 Original-Received: from localhost ([::1]:41669 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZXFhd-0003wB-Jt for geh-help-gnu-emacs@m.gmane.org; Wed, 02 Sep 2015 17:36:21 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:55293) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZXFhP-0003vx-Uu for help-gnu-emacs@gnu.org; Wed, 02 Sep 2015 17:36:08 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ZXFhL-00072Y-P9 for help-gnu-emacs@gnu.org; Wed, 02 Sep 2015 17:36:07 -0400 Original-Received: from plane.gmane.org ([80.91.229.3]:59552) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZXFhL-000722-J5 for help-gnu-emacs@gnu.org; Wed, 02 Sep 2015 17:36:03 -0400 Original-Received: from list by plane.gmane.org with local (Exim 4.69) (envelope-from ) id 1ZXFSl-0003QQ-OP for help-gnu-emacs@gnu.org; Wed, 02 Sep 2015 23:20:59 +0200 Original-Received: from nl106-137-244.student.uu.se ([130.243.137.244]) by main.gmane.org with esmtp (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Wed, 02 Sep 2015 23:20:59 +0200 Original-Received: from embe8573 by nl106-137-244.student.uu.se with local (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Wed, 02 Sep 2015 23:20:59 +0200 X-Injected-Via-Gmane: http://gmane.org/ Mail-Followup-To: help-gnu-emacs@gnu.org Original-Lines: 44 Original-X-Complaints-To: usenet@ger.gmane.org X-Gmane-NNTP-Posting-Host: nl106-137-244.student.uu.se Mail-Copies-To: never User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.4 (gnu/linux) Cancel-Lock: sha1:LhFdwocr0RTZ6gfTFK4KTnMCTBU= X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 80.91.229.3 X-BeenThere: help-gnu-emacs@gnu.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: Users list for the GNU Emacs text editor List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Original-Sender: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.help:106993 Archived-At: Drew Adams writes: >> The `car' example I provided may look cool (?) but >> it isn't anything that cannot be done with >> "memberp", because obviously the car is known, >> otherwise one wouldn't be able to search for it. > > Sure, if you just want the element you're testing > for, then (car (member 'foo xs)) is no better than > (and (memberp 'foo xs) 'foo) > > (In the second example, if the element needs to be > computed, let-bind it to avoid computing it twice.) Agreed: the first example is better unless you do that. Better style, and sometimes even better performance tho in most cases equal or a negligeable difference. However, as the trained eye does, it automagically associates beauty with speed and power :) > But maybe you want the next element after `foo': > (cadr (member 'foo xs)) I tried to visualize such use but as for me I am still unable, probably because I would instead do something else that is practically equivalent in that situation. > You get the idea. Often, if you care about the list > structure it is because you are modifying it > (destructive operations). (Not always - e.g., (cadr > (member 'foo xs)).) > > And yes, most other uses of `member' (and `memq') > are just tests for membership. You can see this by > grepping the Emacs Lisp sources. Most definitely a good method in cases such as this and many others. If I find any Elisp-kung-fu-ish use of `member', I'll post it here faster than a Bruce Lee finger jab. -- underground experts united http://user.it.uu.se/~embe8573