all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Daniel Colascione <dancol@dancol.org>
To: Tom <adatgyujto@gmail.com>, emacs-devel@gnu.org
Subject: Re: Occur stack
Date: Sat, 18 Jan 2014 23:12:32 -0800	[thread overview]
Message-ID: <52DB7AE0.50503@dancol.org> (raw)
In-Reply-To: <loom.20140119T073159-130@post.gmane.org>

On 01/18/2014 10:40 PM, Tom wrote:
> Stefan Monnier <monnier <at> 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))))



  reply	other threads:[~2014-01-19  7:12 UTC|newest]

Thread overview: 44+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-01-14 16:24 Occur stack Tom
2014-01-14 16:35 ` Nicolas Richard
2014-01-14 16:57   ` Tom
2014-01-14 17:00     ` Tom
2014-01-14 17:07     ` Juanma Barranquero
2014-01-14 17:12       ` Tom
2014-01-14 17:21         ` Lars Magne Ingebrigtsen
2014-01-14 20:30           ` Tom
2014-01-14 20:40             ` Tom
2014-01-14 21:08           ` Daniel Colascione
2014-01-14 21:24             ` John Yates
2014-01-14 21:32             ` Drew Adams
2014-01-14 21:26           ` Stefan Monnier
2014-01-14 17:41         ` Allen S. Rout
2014-01-15  8:27       ` Juri Linkov
2014-01-15  9:06         ` David Kastrup
2014-01-16  7:57           ` Juri Linkov
2014-01-16  8:53             ` David Kastrup
2014-01-16  9:46               ` Lars Ingebrigtsen
2014-01-16 10:36                 ` David Kastrup
2014-01-16 13:47                   ` Stefan Monnier
2014-01-16 13:54                     ` David Kastrup
2014-01-17 15:52                       ` Lars Ingebrigtsen
2014-01-15 18:52 ` Andreas Röhler
2014-01-15 20:16   ` Tom
2014-01-16 17:19     ` Tom
2014-01-17  8:24       ` Andreas Röhler
2014-01-17 13:24         ` Tom
2014-01-19 14:50           ` Andreas Röhler
2014-01-19 16:03             ` Tom
2014-01-17 17:19         ` Tom
2014-01-18 17:01           ` Tom
2014-01-19  2:39             ` Stefan Monnier
2014-01-19  6:40               ` Tom
2014-01-19  7:12                 ` Daniel Colascione [this message]
2014-01-19 14:38                 ` Stefan Monnier
2014-01-19 15:56                   ` Tom
2014-01-18 17:04           ` Lars Ingebrigtsen
2014-01-19  2:45             ` Stefan Monnier
2014-01-21  7:51               ` Juri Linkov
2014-01-21  9:05                 ` joakim
2014-01-22  8:03                   ` Juri Linkov
2014-01-21 19:42               ` Lars Ingebrigtsen
2014-01-22  1:27                 ` Stefan Monnier

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=52DB7AE0.50503@dancol.org \
    --to=dancol@dancol.org \
    --cc=adatgyujto@gmail.com \
    --cc=emacs-devel@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/emacs.git
	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.