* Why is Elisp a lisp-2?
@ 2016-10-07 10:17 Nikolay Kudryavtsev
2016-10-07 10:53 ` tomas
2016-10-07 10:53 ` Marcin Borkowski
0 siblings, 2 replies; 6+ messages in thread
From: Nikolay Kudryavtsev @ 2016-10-07 10:17 UTC (permalink / raw)
To: help-gnu-emacs@gnu.org
From the time I started using Elisp I never gave much conscious thought
to it being a lisp-2 and kind of naturally treated it as a lisp-1. And
now it has finally downed on me that Elisp is actually a lisp-2.
So here my question, what was the historical reasoning for Elisp being a
lisp-2?
--
Best Regards,
Nikolay Kudryavtsev
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: Why is Elisp a lisp-2?
2016-10-07 10:17 Why is Elisp a lisp-2? Nikolay Kudryavtsev
@ 2016-10-07 10:53 ` tomas
2016-10-07 13:01 ` Stefan Monnier
2016-10-07 10:53 ` Marcin Borkowski
1 sibling, 1 reply; 6+ messages in thread
From: tomas @ 2016-10-07 10:53 UTC (permalink / raw)
To: help-gnu-emacs
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
On Fri, Oct 07, 2016 at 01:17:12PM +0300, Nikolay Kudryavtsev wrote:
> From the time I started using Elisp I never gave much conscious
> thought to it being a lisp-2 and kind of naturally treated it as a
> lisp-1. And now it has finally downed on me that Elisp is actually a
> lisp-2.
>
> So here my question, what was the historical reasoning for Elisp
> being a lisp-2?
I think this is mainly historical: the very terms lisp-1 and lisp-2 were
coined 1988 [1]. Emacs was already there back then. When Emacs was born, all
Lisps were lisp-2, or thereabouts.
Take this with a fist of salt, though. My historical knowledge is not
*that* deep. Perhaps someone with more history chops wants to chime in.
Regards
[1] https://en.wikipedia.org/wiki/Common_Lisp#The_function_namespace
- -- tomás
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.12 (GNU/Linux)
iEYEARECAAYFAlf3fqgACgkQBcgs9XrR2kZ9SwCfdOseoJ1koQEUl8L865CjtzC8
WIQAn1SxLzbOPWalFtSEUuq542566kDu
=y2GX
-----END PGP SIGNATURE-----
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: Why is Elisp a lisp-2?
2016-10-07 10:17 Why is Elisp a lisp-2? Nikolay Kudryavtsev
2016-10-07 10:53 ` tomas
@ 2016-10-07 10:53 ` Marcin Borkowski
2016-10-10 13:31 ` Oleksandr Gavenko
1 sibling, 1 reply; 6+ messages in thread
From: Marcin Borkowski @ 2016-10-07 10:53 UTC (permalink / raw)
To: Nikolay Kudryavtsev; +Cc: help-gnu-emacs@gnu.org
On 2016-10-07, at 12:17, Nikolay Kudryavtsev <nikolay.kudryavtsev@gmail.com> wrote:
> From the time I started using Elisp I never gave much conscious thought
> to it being a lisp-2 and kind of naturally treated it as a lisp-1. And
> now it has finally downed on me that Elisp is actually a lisp-2.
>
> So here my question, what was the historical reasoning for Elisp being a
> lisp-2?
(trolling-mode 1)
Because it is a serious tool and not a toy?
/me ducks and runs
(trolling-mode 0)
Actually, I'd like to hear the answer, too. One conjecture is that
Elisp being lisp-2 enables functions and variables with the same name
(this is what lisp-2 means, right?), and RMS might have found it useful:
there are quite a few such pairs in Emacs.
Best,
--
Marcin Borkowski
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: Why is Elisp a lisp-2?
2016-10-07 10:53 ` tomas
@ 2016-10-07 13:01 ` Stefan Monnier
2016-10-08 13:02 ` tomas
0 siblings, 1 reply; 6+ messages in thread
From: Stefan Monnier @ 2016-10-07 13:01 UTC (permalink / raw)
To: help-gnu-emacs
> When Emacs was born, all Lisps were lisp-2, or thereabouts.
Hmm... I think that when Richard started to work on "the one and only
Emacs", Scheme was definitely around (as in "within a 50m radius").
Stefan
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: Why is Elisp a lisp-2?
2016-10-07 13:01 ` Stefan Monnier
@ 2016-10-08 13:02 ` tomas
0 siblings, 0 replies; 6+ messages in thread
From: tomas @ 2016-10-08 13:02 UTC (permalink / raw)
To: help-gnu-emacs
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
On Fri, Oct 07, 2016 at 09:01:56AM -0400, Stefan Monnier wrote:
> > When Emacs was born, all Lisps were lisp-2, or thereabouts.
>
> Hmm... I think that when Richard started to work on "the one and only
> Emacs", Scheme was definitely around (as in "within a 50m radius").
I stand corrected. Emacs and Scheme emerged both around 1975. And the
50m radius is (as often from you) a pretty deep observation :-)
thanks
- -- t
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.12 (GNU/Linux)
iEYEARECAAYFAlf47moACgkQBcgs9XrR2kYH8QCePE1V1RhM1tkIooUzlSCley4n
xHMAn1ikjqEonrqIM09XatgYG4ma2RL/
=MiGp
-----END PGP SIGNATURE-----
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: Why is Elisp a lisp-2?
2016-10-07 10:53 ` Marcin Borkowski
@ 2016-10-10 13:31 ` Oleksandr Gavenko
0 siblings, 0 replies; 6+ messages in thread
From: Oleksandr Gavenko @ 2016-10-10 13:31 UTC (permalink / raw)
To: help-gnu-emacs
On 2016-10-07, Marcin Borkowski wrote:
> One conjecture is that Elisp being lisp-2 enables functions and variables
> with the same name (this is what lisp-2 means, right?), and RMS might have
> found it useful: there are quite a few such pairs in Emacs.
At least each major/minor mode function have corresponding variable:
--8<---------------cut here---------------start------------->8---
(defmacro define-minor-mode (mode doc &optional init-value lighter keymap &rest body)
[...]
(make-variable-buffer-local ',mode)))
[...]
(modefun mode) ;The minor mode function name we're defining.
[...]
;; The actual function.
(defun ,modefun (&optional arg ,@extra-args)
[...]
(,@(if setter `(funcall #',setter)
(list (if (symbolp mode) 'setq 'setf) mode))
(if (eq arg 'toggle)
(not ,mode)
;; A nil argument also means ON now.
(> (prefix-numeric-value arg) 0)))
--8<---------------cut here---------------end--------------->8---
================================================================
I would like also mention plist attached to symbol. It is interesting idea to
carry named metadata with symbol:
--8<---------------cut here---------------start------------->8---
(eq 'byte-compile-no-warnings (get 'with-no-warnings 'byte-compile))
(eq 'byte-compile-no-warnings
(plist-get (symbol-plist 'with-no-warnings) 'byte-compile))
--8<---------------cut here---------------end--------------->8---
--
http://defun.work/
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2016-10-10 13:31 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-10-07 10:17 Why is Elisp a lisp-2? Nikolay Kudryavtsev
2016-10-07 10:53 ` tomas
2016-10-07 13:01 ` Stefan Monnier
2016-10-08 13:02 ` tomas
2016-10-07 10:53 ` Marcin Borkowski
2016-10-10 13:31 ` Oleksandr Gavenko
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).