emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Make format-spec accept a function as the substitution


From: Stefan Monnier
Subject: Re: Make format-spec accept a function as the substitution
Date: Thu, 29 Sep 2022 08:36:49 -0400
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/29.0.50 (gnu/linux)

Thierry Volpiatto [2022-09-29 06:57:07] wrote:
> After thinking at it, it would be great to allow using interactive calls
> in specs without wrapping them inside a function:
>
> Using this should ask for line number and file:
> (format-spec "Go to line %n in file %f %g" '((?n . (read-number "Number: "))
>                                              (?g . "now")
>                                              (?f . (read-file-name "File: 
> "))))

ELisp forms under a quote make me cringe.

Code should be quoted with `lambda` (which you run with `funcall` or
`apply`), not with `quote` (for which you need to use `eval`).

So we should aim for a source code of the form:

    (format-spec "Go to line %n in file %f %g"
                 `((?n . ,(λ () (read-number "Number: ")))
                   (?g . "now")
                   (?f . ,(λ () (read-file-name "File: ")))))


-- Stefan




reply via email to

[Prev in Thread] Current Thread [Next in Thread]