unofficial mirror of help-gnu-emacs@gnu.org
 help / color / mirror / Atom feed
* 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).