From mboxrd@z Thu Jan 1 00:00:00 1970 Path: main.gmane.org!not-for-mail From: Kevin Rodgers Newsgroups: gmane.emacs.help Subject: Re: quickly find all executables Date: Mon, 28 Jul 2003 11:20:55 -0600 Sender: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Message-ID: <3F255B77.70100@yahoo.com> References: <7iznj4wrb1.fsf@neoscale.com> <7ik7a6edaq.fsf@neoscale.com> NNTP-Posting-Host: main.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-Trace: main.gmane.org 1059413331 2990 80.91.224.249 (28 Jul 2003 17:28:51 GMT) X-Complaints-To: usenet@main.gmane.org NNTP-Posting-Date: Mon, 28 Jul 2003 17:28:51 +0000 (UTC) Original-X-From: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Mon Jul 28 19:28:45 2003 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 19hBml-0000fs-00 for ; Mon, 28 Jul 2003 19:27:47 +0200 Original-Received: from localhost ([127.0.0.1] helo=monty-python.gnu.org) by monty-python.gnu.org with esmtp (Exim 4.20) id 19hBkO-0005hX-7q for geh-help-gnu-emacs@m.gmane.org; Mon, 28 Jul 2003 13:25:20 -0400 Original-Path: shelby.stanford.edu!newsfeed.stanford.edu!news-spur1.maxwell.syr.edu!news.maxwell.syr.edu!newsfeed.icl.net!newsfeed.fjserv.net!skynet.be!skynet.be!fu-berlin.de!uni-berlin.de!170.207.51.80!not-for-mail Original-Newsgroups: gnu.emacs.help Original-Lines: 34 Original-NNTP-Posting-Host: 170.207.51.80 Original-X-Trace: news.uni-berlin.de 1059412854 21216131 170.207.51.80 (16 [82742]) User-Agent: Mozilla/5.0 (X11; U; SunOS i86pc; en-US; rv:0.9.4.1) Gecko/20020406 Netscape6/6.2.2 X-Accept-Language: en-us Original-Xref: shelby.stanford.edu gnu.emacs.help:115499 Original-To: help-gnu-emacs@gnu.org X-BeenThere: help-gnu-emacs@gnu.org X-Mailman-Version: 2.1.2 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 Xref: main.gmane.org gmane.emacs.help:11417 X-Report-Spam: http://spam.gmane.org/gmane.emacs.help:11417 Kin Cho wrote: > Eric Marsden writes: > >> (remove-if-not 'file-executable-p >> (mapcan (lambda (dir) (directory-files dir t)) >> (remove-if-not 'file-directory-p exec-path))) >> > > Thanks. This code is significantly shorter than Kevin Rodgers' > version, and it runs in virtually the same amount of time for my > setup (ok, about .02 seconds slower to be exact). Did you add in the time needed to load cl (a prerequisite for cl-seq and cl-extra), cl-seq (for remove-if-not), and cl-extra (for mapcan)? :-) > This is quite amazing to me -- I thought lambda's are function > calls, and function calls are slow, at least on a CISC CPU like > the P4 that I'm running on. Lisp function calls are relatively slow, but you can't determine how many functions are called just by looking at the code. Also, did you try byte-compiling the code? Eric's code would probably benefit the most, because of the lambda form. -- Kevin Rodgers