From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED!not-for-mail From: Emanuel Berg Newsgroups: gmane.emacs.help Subject: Re: return first element in list with certain property Date: Mon, 20 Nov 2017 22:16:49 +0100 Message-ID: <86ine4y7jy.fsf@zoho.com> References: <8660a60zjn.fsf@zoho.com> <87mv3gzndx.fsf@ericabrahamsen.net> NNTP-Posting-Host: blaine.gmane.org Mime-Version: 1.0 Content-Type: text/plain X-Trace: blaine.gmane.org 1511212672 30846 195.159.176.226 (20 Nov 2017 21:17:52 GMT) X-Complaints-To: usenet@blaine.gmane.org NNTP-Posting-Date: Mon, 20 Nov 2017 21:17:52 +0000 (UTC) User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.4 (gnu/linux) To: help-gnu-emacs@gnu.org Original-X-From: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Mon Nov 20 22:17:46 2017 Return-path: Envelope-to: geh-help-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by blaine.gmane.org with esmtp (Exim 4.84_2) (envelope-from ) id 1eGtRo-0007YE-8q for geh-help-gnu-emacs@m.gmane.org; Mon, 20 Nov 2017 22:17:44 +0100 Original-Received: from localhost ([::1]:59785 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eGtRv-0002iG-OA for geh-help-gnu-emacs@m.gmane.org; Mon, 20 Nov 2017 16:17:51 -0500 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:56889) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eGtRH-0002go-Sh for help-gnu-emacs@gnu.org; Mon, 20 Nov 2017 16:17:13 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1eGtRD-00080K-Tn for help-gnu-emacs@gnu.org; Mon, 20 Nov 2017 16:17:11 -0500 Original-Received: from [195.159.176.226] (port=44973 helo=blaine.gmane.org) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1eGtRD-0007z2-NB for help-gnu-emacs@gnu.org; Mon, 20 Nov 2017 16:17:07 -0500 Original-Received: from list by blaine.gmane.org with local (Exim 4.84_2) (envelope-from ) id 1eGtQx-0004So-8b for help-gnu-emacs@gnu.org; Mon, 20 Nov 2017 22:16:51 +0100 X-Injected-Via-Gmane: http://gmane.org/ Mail-Followup-To: help-gnu-emacs@gnu.org Original-Lines: 41 Original-X-Complaints-To: usenet@blaine.gmane.org Mail-Copies-To: never Cancel-Lock: sha1:RSOF5U/P1gSkuM791cqxSCam0Ys= X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 195.159.176.226 X-BeenThere: help-gnu-emacs@gnu.org X-Mailman-Version: 2.1.21 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" Xref: news.gmane.org gmane.emacs.help:115012 Archived-At: Eric Abrahamsen wrote: > FWIW, this is essentially how seq-find works, > and I generally use this. Here (my use case) it is important that the search is linear along the list from the beginning as the hit is almost always in the very early section of the list. However the below tests seem to indicate no problems for any of the solutions suggested so far? (let ((test-list '(0 1 2 3 4 5))) (cl-dolist (e test-list) (message "cl-dolist processing: %s" e) (when (> e 1) (cl-return e) )) (cl-find-if (lambda (e) (and (message "cl-find-if processing: %s" e) (> e 1) )) test-list) (seq-find (lambda (e) (and (message "find-seq processing: %s" e) (> e 1) )) test-list) ) ;; cl-dolist processing: 0 ;; cl-dolist processing: 1 ;; cl-dolist processing: 2 ;; cl-find-if processing: 0 ;; cl-find-if processing: 1 ;; cl-find-if processing: 2 ;; find-seq processing: 0 ;; find-seq processing: 1 ;; find-seq processing: 2 -- underground experts united http://user.it.uu.se/~embe8573