all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Jose A Ortega Ruiz <jao@gnu.org>
To: Stefan Monnier <monnier@iro.umontreal.ca>
Cc: emacs-devel@gnu.org
Subject: Re: [nongnu] elpa/geiser bb9d5cb200: geiser-impl--normalize-method: quick fix for previous change
Date: Fri, 28 Jan 2022 23:07:16 +0000	[thread overview]
Message-ID: <878ruza28r.fsf@gnus.jao.io> (raw)
In-Reply-To: <jwva6ff602p.fsf-monnier+emacs@gnu.org>

On Fri, Jan 28 2022, Stefan Monnier wrote:

>> yes, that works, but i find it ugly to use eval explictly for the sake
>> of not using "a list-that-looks-like-a-function":
>
> To me, it's being more honest: we have a variable that holds an ELisp
> expression, so we need `eval` somwehere.
>
>> what are the downsides of the latter?  i understand that i'd be just
>> hiding an implicit eval, but is that all, or am i missing
>> other drawbacks?
>
> There's no serious drawback, no.  Here are some minor drawbacks:
> - In Common-Lisp and Scheme '(lambda () 5) does not evaluate to
>   something recognized as a function.  Currently ELisp does, but I think
>   it's something better avoided.  I hope in some distant future we can
>   make the types `function` and `cons` be a mutually-exclusive.
> - the function value `(lambda () ,v) returns a function that will
>   evaluate v using the old dynamically-scoped dialect which we're trying
>   to phase out.

ok, that sounds mildly persuasive, and it's always good to plan for the
next 50 years...

>> (isn't, loosely speaking, hiding evals one of things macros
>> buy us?
>
> `eval` is used sometimes in macros, but most macros neither use nor hide
> `eval`, AFAIK, no.

i was thinking of the fact that a (non-hygienic) macro essentially
produces a list that is then evaluated for me implicitly.  but anyway,
it was just a loose association.

>> ... the version without eval looks more readable to me).
>
> My own taste is reflects in the fact that my local Emacs rejects
> (lambda ...) as a valid function value ;-)

i've pushed a patch using eval... why, it'd be a shame if you couldn't
use geiser! ;)

thanks,
jao
-- 
"Light thinks it travels faster than anything but it is wrong. No matter
 how fast light travels it finds the darkness has always got there first,
 and is waiting for it."
  -Terry Pratchett, Reaper Man



      reply	other threads:[~2022-01-28 23:07 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <164339989485.1614.11034229578358286224@vcs2.savannah.gnu.org>
     [not found] ` <20220128195815.4DB24C423B9@vcs2.savannah.gnu.org>
2022-01-28 20:16   ` [nongnu] elpa/geiser bb9d5cb200: geiser-impl--normalize-method: quick fix for previous change Stefan Monnier
2022-01-28 20:47     ` Jose A Ortega Ruiz
2022-01-28 21:16       ` Stefan Monnier
2022-01-28 23:07         ` Jose A Ortega Ruiz [this message]

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=878ruza28r.fsf@gnus.jao.io \
    --to=jao@gnu.org \
    --cc=emacs-devel@gnu.org \
    --cc=monnier@iro.umontreal.ca \
    /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.