all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Daniel Colascione <dancol@dancol.org>
To: Phillip Lord <phillip.lord@newcastle.ac.uk>,
	 Stefan Monnier <monnier@iro.umontreal.ca>
Cc: Oleh <ohwoeowho@gmail.com>, emacs-devel@gnu.org
Subject: Re: [PATCH] Clojure-like syntactic sugar for an anonymous function literal
Date: Fri, 23 Jan 2015 03:50:52 -0800	[thread overview]
Message-ID: <54C2359C.3000600@dancol.org> (raw)
In-Reply-To: <87egqlvl86.fsf@newcastle.ac.uk>

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

On 01/23/2015 02:34 AM, Phillip Lord wrote:
> Stefan Monnier <monnier@iro.umontreal.ca> writes:
> 
>>> That's a problem with any lisp that provides a reader-macro facility.
>>> The onus is on the authors of macro packages to create macros that work
>>> well with the existing emacs-lisp-mode parser.
>>
>> That's a good point.
>>
>>>>> So I'm currently against addition of CL style reader macros.
>>> Stefan, is emacs-lisp-mode support your only objection?
>>
>> Yes and no.  No in the sense that I expect that introducing such reader
>> macros will have consequences that go further than just "emacs-lisp-mode
>> support".
>>
>> Maybe we could introduce a more limited form of reader macros.
>> E.g. allow #<letter><sexp> and make the reader return
>>
>>    (funcall (cdr (assq <letter> reader-macro-alist)) <sexp>)
> 
> Would it not be possible to have the reader return a macro which could
> do the cdr and assq at compile time and obviate the need for funcall?
> This would be faster. It means that changes to reader-macro-alist
> wouldn't be reflected in code till it was re-evaled.

This paragraph is hard to parse, but ITYM that instead of literally
calling funcall as Stefan described, the reader would mechanically
transform _any_ construct of the form #LS, L being a letter and S being
a sexp, into something like (expand-reader-macro 'L 'S).

Maybe that could work, if the scoping rules (see below) were preserved.
In any case, it's just an implementation detail.

> My main concern with this as a proposal is that <letter> is a fairly
> small namespace. There is a lot of possibility for pretty disasterous
> clashes if this gets used in the wild.

Of course. That's why we'd make each file register an association
between letters and the macros to which they'd expand. Think of how XML
namespaces map short local names to long global names. We'd make this
mapping buffer-local, like lexical-binding.


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 819 bytes --]

  parent reply	other threads:[~2015-01-23 11:50 UTC|newest]

Thread overview: 78+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-01-21 21:38 [PATCH] Clojure-like syntactic sugar for an anonymous function literal Oleh
2015-01-21 22:28 ` samer
2015-01-21 22:37   ` Oleh
2015-01-21 23:36     ` Artur Malabarba
2015-01-21 23:46       ` Oleh
2015-01-22  0:54         ` Artur Malabarba
2015-01-22  0:57           ` Artur Malabarba
2015-01-22  1:29 ` Daniel Colascione
2015-01-22  2:21   ` Drew Adams
2015-01-22 13:35     ` Lars Brinkhoff
2015-01-22  7:20   ` Stephen J. Turnbull
2015-01-22  8:04     ` Oleh
2015-01-22  8:16       ` David Kastrup
2015-01-22  9:07       ` Andreas Schwab
2015-01-22  9:19         ` Oleh
2015-01-22  8:52   ` René Kyllingstad
2015-01-22  9:17     ` David Kastrup
2015-01-22  9:27       ` Oleh
2015-01-22  9:38         ` Daniel Colascione
2015-01-22  9:45           ` Oleh
2015-01-22  9:50             ` Daniel Colascione
2015-01-22  9:52               ` Oleh
2015-01-22  9:57                 ` Daniel Colascione
2015-01-22 10:05                   ` Oleh
2015-01-22 16:57                     ` Ivan Andrus
2015-01-23  0:54           ` Leo Liu
2015-01-24 23:33           ` Lars Ingebrigtsen
2015-01-22 10:15         ` Stephen J. Turnbull
2015-01-22 10:20           ` David Kastrup
2015-01-22 14:21             ` Stephen J. Turnbull
2015-01-22 14:31               ` Oleh
2015-01-23  1:03                 ` Stephen J. Turnbull
2015-01-22 10:22           ` Oleh
2015-01-22 10:32             ` David Kastrup
2015-01-22 10:40               ` Oleh
2015-01-22 10:56             ` Tassilo Horn
2015-01-22 11:03               ` Oleh
2015-01-22 14:35             ` Stephen J. Turnbull
2015-01-22 14:44               ` Oleh
2015-01-23  1:11                 ` Stephen J. Turnbull
2015-01-22 14:48               ` Artur Malabarba
2015-01-23  1:17                 ` Stephen J. Turnbull
2015-01-22 11:03           ` Phillip Lord
2015-01-22  9:35       ` René Kyllingstad
2015-01-22  9:45         ` Daniel Colascione
2015-01-22  9:49         ` David Kastrup
2015-01-22  9:53           ` Daniel Colascione
2015-01-22 10:22         ` David Kastrup
2015-01-22 12:37   ` Artur Malabarba
2015-01-22 12:46     ` Phillip Lord
2015-01-22 12:49       ` Daniel Colascione
2015-01-22 13:07         ` Oleh
2015-01-22 22:10           ` Richard Stallman
2015-01-23  9:28             ` David Kastrup
2015-01-24  1:09               ` Richard Stallman
2015-01-24  8:29                 ` Thien-Thi Nguyen
2015-01-23 10:33             ` Eli Zaretskii
2015-01-22 16:44 ` Stefan Monnier
2015-01-22 17:22   ` Oleh
2015-01-22 20:34     ` Daniel Colascione
2015-01-22 23:36       ` Stefan Monnier
2015-01-22 23:38         ` Reader macros (Was: Re: [PATCH] Clojure-like syntactic sugar for an anonymous function literal) Daniel Colascione
2015-01-23  9:33           ` Reader macros David Kastrup
2015-01-23 11:45             ` Daniel Colascione
2015-01-23 12:27               ` David Kastrup
2015-01-23 10:34         ` [PATCH] Clojure-like syntactic sugar for an anonymous function literal Phillip Lord
2015-01-23 10:47           ` Oleh
2015-01-23 11:53             ` Phillip Lord
2015-01-23 12:02               ` Daniel Colascione
2015-01-23 11:50           ` Daniel Colascione [this message]
2015-01-23 13:18             ` Phillip Lord
2015-01-23 20:24           ` Stefan Monnier
2015-01-23 20:52             ` Stefan Monnier
2015-01-23 22:25               ` Phillip Lord
2015-01-23  7:44       ` Oleh
2015-01-22 23:28     ` Stefan Monnier
2015-01-22 18:30   ` Artur Malabarba
  -- strict thread matches above, loose matches on Subject: below --
2015-01-26 22:22 Barry OReilly

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=54C2359C.3000600@dancol.org \
    --to=dancol@dancol.org \
    --cc=emacs-devel@gnu.org \
    --cc=monnier@iro.umontreal.ca \
    --cc=ohwoeowho@gmail.com \
    --cc=phillip.lord@newcastle.ac.uk \
    /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.