From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Daniel Colascione Newsgroups: gmane.emacs.devel Subject: Re: Occur stack Date: Sat, 18 Jan 2014 23:12:32 -0800 Message-ID: <52DB7AE0.50503@dancol.org> References: <52D6D907.4030702@online.de> <52D8E8CB.5080600@online.de> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Trace: ger.gmane.org 1390115564 16882 80.91.229.3 (19 Jan 2014 07:12:44 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Sun, 19 Jan 2014 07:12:44 +0000 (UTC) To: Tom , emacs-devel@gnu.org Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Sun Jan 19 08:12:49 2014 Return-path: Envelope-to: ged-emacs-devel@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 1W4mYp-0004NS-N4 for ged-emacs-devel@m.gmane.org; Sun, 19 Jan 2014 08:12:47 +0100 Original-Received: from localhost ([::1]:45348 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1W4mYo-0004sr-UD for ged-emacs-devel@m.gmane.org; Sun, 19 Jan 2014 02:12:46 -0500 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:55817) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1W4mYi-0004sj-7d for emacs-devel@gnu.org; Sun, 19 Jan 2014 02:12:44 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1W4mYd-0002co-CS for emacs-devel@gnu.org; Sun, 19 Jan 2014 02:12:40 -0500 Original-Received: from dancol.org ([2600:3c01::f03c:91ff:fedf:adf3]:48903) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1W4mYd-0002b8-14 for emacs-devel@gnu.org; Sun, 19 Jan 2014 02:12:35 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=dancol.org; s=x; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:References:Subject:To:MIME-Version:From:Date:Message-ID; bh=lII6hXrkwX7j3L1ErLqjxZFuz+KTf+9ScSSHTqpcGOU=; b=q4UPXcz1xOgrUvMd0M8kqwjuLyDDTN+wRu2C/HbnKB6jOzDvPIBX2GwAJz8ciB/UM4PALCMOZbW2k/pWQglczhoW1uzF+URbMDLp/cj8owW70rin9D+gLse281Wxn+xTZ4oeM2WaH6YvmLiDv1PB32nl3S2JOpJVwOV7sQ1dGKK+mSwi4GA+5Q1pyuGdcrDHphn+VbtbHTLH0gmtT3anULAlHM1I3CVXW76PIm+UOjfQap3vBKVeihWNuRITJk14OYhR4Yhflp/cxOo9IgcIiByBt7uVCZhvIkDFmQQ2AsWFFBhb/p64gdaglPy0Fa+GuStPG3t0KXOd+mbLSy+sJA==; Original-Received: from c-76-104-210-106.hsd1.wa.comcast.net ([76.104.210.106] helo=[192.168.1.50]) by dancol.org with esmtpsa (TLS1.0:DHE_RSA_CAMELLIA_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1W4mYb-0004Du-Lf; Sat, 18 Jan 2014 23:12:33 -0800 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.2.0 In-Reply-To: X-detected-operating-system: by eggs.gnu.org: Error: Malformed IPv6 address (bad octet value). X-Received-From: 2600:3c01::f03c:91ff:fedf:adf3 X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.devel:168722 Archived-At: On 01/18/2014 10:40 PM, Tom wrote: > Stefan Monnier iro.umontreal.ca> writes: > >> >>> (eval `(let ((dir default-directory) >>> (args command-args)) >>> (lambda () >>> (let ((default-directory dir)) >>> (grep-find args)))) >>> t)))) >> >> Yuck! >> > > This is the first time I used closures, so it may be crude. > > Is there a simpler way to write this? First I tried to > set default-directory in the outer let, but then it had > apparently no effect on grep-find. That's because default-directory is marked special and so we don't close over its value. > Hmm, I tried it again and it worked, so I must have had > some other error when I wrote this. > > Is this the simplest way then? Or can it be simplified more? > > (eval `(let ((default-directory default-directory) > (args command-args)) > (lambda () > (grep-find args))) > t)))) What about this? (Untested.) (let ((dd-value default-directory)) (lamda () (let ((default-directory dd-value)) (grep-find args))))