emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
From: John Kitchin <jkitchin@andrew.cmu.edu>
To: Adam Porter <adam@alphapapa.net>
Cc: org-mode-email <emacs-orgmode@gnu.org>
Subject: Re: lisp: scoping vars in repetitive defuns
Date: Wed, 18 Sep 2019 19:17:58 -0400	[thread overview]
Message-ID: <CAJ51ETov68hd=RJyCdkNm+x64+LGkQv9XNcdx8qxLKxqKjxg9Q@mail.gmail.com> (raw)
In-Reply-To: <87r24d6zzd.fsf@alphapapa.net>

[-- Attachment #1: Type: text/plain, Size: 1519 bytes --]

I played with a similar idea of converting a plist to something you can
call to access values at
https://kitchingroup.cheme.cmu.edu/blog/2017/04/16/A-callable-plist-data-structure-for-Emacs/.
It did end up as a macro, but no eval required. It never made it past that
post, but it might have an application here.

I am not sure why you have to loop over everything in a let statement
though. you can use something like https://github.com/nicferrier/emacs-kv to
get all the keys an loop over those to do what you want, or you can just
use cl-loop to do that. So, unless you are defining new variables for
readability you shouldn't need to let bind anything that is in the plist,
only new things that are derived from it.

John

-----------------------------------
Professor John Kitchin
Doherty Hall A207F
Department of Chemical Engineering
Carnegie Mellon University
Pittsburgh, PA 15213
412-268-7803
@johnkitchin
http://kitchingroup.cheme.cmu.edu



On Wed, Sep 18, 2019 at 5:45 PM Adam Porter <adam@alphapapa.net> wrote:

> Joost Kremers <joostkremers@fastmail.fm> writes:
>
> > On Wed, Sep 18 2019, Matt Price wrote:
> >> Is thre away to do that kind of destructuring bind -- which
> >> binds *everything* in the plist, without knowing the symbol names in
> >> advance? that would be really great.
> >
> > let-alist perhaps?
>
> Well, let-alist is for alists, not plists.  ;) But anyway, it's a macro,
> and it does require knowing keys at compile time.  -let is a good
> alternative for plists and other maps.
>
>
>

[-- Attachment #2: Type: text/html, Size: 2436 bytes --]

  reply	other threads:[~2019-09-18 23:18 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-09-17 11:30 lisp: scoping vars in repetitive defuns Matt Price
2019-09-17 12:46 ` John Kitchin
2019-09-18  1:12   ` Matt Price
2019-09-18 12:48     ` John Kitchin
2019-09-18 20:52       ` Matt Price
2019-09-18 21:26         ` Joost Kremers
2019-09-18 21:44           ` Adam Porter
2019-09-18 23:17             ` John Kitchin [this message]
2019-09-19  0:10               ` Adam Porter
2019-09-18 21:42         ` Adam Porter
2019-09-17 13:42 ` Nick Dokos

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

  List information: https://www.orgmode.org/

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

  git send-email \
    --in-reply-to='CAJ51ETov68hd=RJyCdkNm+x64+LGkQv9XNcdx8qxLKxqKjxg9Q@mail.gmail.com' \
    --to=jkitchin@andrew.cmu.edu \
    --cc=adam@alphapapa.net \
    --cc=emacs-orgmode@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 public inbox

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

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).