From: Stefan Monnier <monnier@iro.umontreal.ca>
To: Artur Malabarba <bruce.connor.am@gmail.com>
Cc: emacs-devel <emacs-devel@gnu.org>
Subject: Re: New assoc-let package
Date: Wed, 03 Dec 2014 22:54:50 -0500 [thread overview]
Message-ID: <jwviohsf4yv.fsf-monnier+emacs@gnu.org> (raw)
In-Reply-To: <CAAdUY-JaSpdeer92jQCSdfs_XAFvh79oK2inJX_1Cv-nZVUVKQ@mail.gmail.com> (Artur Malabarba's message of "Wed, 3 Dec 2014 23:40:14 +0000")
>>>>> "Artur" == Artur Malabarba <bruce.connor.am@gmail.com> writes:
> Hi All,
> As part of another project, which involves excessive handing of
> alists, I wrote up a little macro which has turned out to be
> stupendously useful. I'm just checking whether this functionality is
> already offered somewhere, because if it isn't I'll make an Elpa
> package for it.
> Simply put, the macro takes an alist and a body, and makes the data of
> the alist accessible by just writing the car of the desired cell
> preceded by a dot.
> For instance, the following:
> (assoc-let alist
> (if (and .title .body)
> .body
> .site))
I don't know of any package that does something like that, no.
The way I'd have done it is
(cl-macrolet (((a field) `(cdr (assq ,field alist))))
(if (and (a title) (a body))
(a body)
(a site)))
-- Stefan
next prev parent reply other threads:[~2014-12-04 3:54 UTC|newest]
Thread overview: 35+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-12-03 23:40 New assoc-let package Artur Malabarba
2014-12-04 3:54 ` Stefan Monnier [this message]
2014-12-05 0:36 ` Artur Malabarba
2014-12-05 2:49 ` Leo Liu
2014-12-06 2:27 ` Ted Zlatanov
2014-12-04 19:36 ` Ted Zlatanov
2014-12-05 0:33 ` Artur Malabarba
2014-12-05 0:45 ` Ted Zlatanov
2014-12-05 20:27 ` Artur Malabarba
2014-12-05 20:28 ` Artur Malabarba
2014-12-06 11:36 ` Christopher Schmidt
2014-12-06 19:24 ` Artur Malabarba
2014-12-06 19:58 ` Christopher Schmidt
2014-12-07 16:25 ` Ted Zlatanov
2014-12-06 2:42 ` Ted Zlatanov
2014-12-06 4:55 ` Stefan Monnier
2014-12-08 10:56 ` Ted Zlatanov
2014-12-08 12:11 ` Artur Malabarba
2014-12-08 14:01 ` Ted Zlatanov
2014-12-08 15:01 ` Stefan Monnier
2014-12-08 14:59 ` Stefan Monnier
2014-12-08 15:35 ` Ted Zlatanov
2014-12-08 15:56 ` Stefan Monnier
2014-12-08 18:23 ` Artur Malabarba
2014-12-08 18:28 ` Artur Malabarba
2014-12-08 20:07 ` Stefan Monnier
2014-12-09 3:37 ` Artur Malabarba
2014-12-09 16:57 ` Stefan Monnier
2014-12-10 15:20 ` Ted Zlatanov
2014-12-10 15:43 ` Stefan Monnier
2014-12-10 15:49 ` Ted Zlatanov
2014-12-10 18:28 ` Artur Malabarba
2014-12-10 19:00 ` Ted Zlatanov
2014-12-10 19:09 ` Stefan Monnier
2014-12-10 19:14 ` Ted Zlatanov
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=jwviohsf4yv.fsf-monnier+emacs@gnu.org \
--to=monnier@iro.umontreal.ca \
--cc=bruce.connor.am@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.