Subject: Re: bug#47992: 27; 28; Phase out use of `equal` in `add-hook`, `remove-hook`

From: Arthur Miller <[email-masked]>
Date: Tue, 06 Jul 2021 11:46:01 +0200

Richard Stallman <[email-masked]> writes:

> [[[ To any NSA and FBI agents reading my email: please consider    ]]]
> [[[ whether defending the US Constitution against all enemies,     ]]]
> [[[ foreign or domestic, requires you to follow Snowden's example. ]]]
>
> People are proposing a lot of work on a little wrinkle that isn't worth
> much effort.  There are other changes we could make that would
> really help users do editing.
>
> Here's an easy way to help users avoid such collisions: to say
> they should include a name in each anonymous lambda that they put on a
> hook in their init files -- a name based on the user's name.
>
> Adding a name to a lambda is easy.  Just write the symbol after the
> argument list (and doc string and interactive spec, if any), like
> this:
>
>    (lambda () rms-init-3 (glum-mode 1))
>
> The mame will distinguish it from any otherwise-identical function
> such as
>
>    (lambda () j-r-gensym (glum-mode 1))
>
> because they will not be equal.
>
> Thus, the only change needed is in documentation.

If they are equal, why do they need to be distinguished?

Also, if we name lambdas, arent they becoming just as functions? What is
the advantage of named lambda over named function?

Sorry I am not so fluent with elisp yet, so I am trying to understand.