libera/#lisp - IRC Chatlog
Search
22:25:17
wasamasa
wait for a gcc release breaking real-world software because they clamped down on standards compliance again
23:20:39
ieure
Many Lisps are compiled. Early Lisps lacked GC. Type systems are not languages, but features of languages.
23:22:11
ieure
I see. Well, JavaScript is not a Lisp, though I believe the original implementation of it was done in Lisp and it has some Lispy features (like lambdas, which were not common in mainstream languages when it was created).
23:34:22
pjb
Actually, once you have sexpified a language, it becomes trivial to add a macro system, and therefore to make it into a full lisp.
23:35:02
ieure
Macro systems are an important, but inessential feature of Lisps. Lisp was around and useful for a long time before there was a macro system.
23:35:06
an_origamian[m]
I'd argue that it's actually easy to do that in most languages. The problem is doing it well, and with something like Carp, that's really hard.
23:36:26
an_origamian[m]
ieure: I somewhat disagree. Keep in mind that the first program we see implemented in lisp is eval. If you quote the inputs to a function and call eval in that function, you effectively have an fexpr, which is more powerful than a macro.
23:38:15
an_origamian[m]
(defun to (var form) (eval (list (quote setq) var (list* (car form) var (cdr form)))))
23:39:07
pjb
ieure: no, lisp wasn't around a long time before the macro system. It was there maximum 5 years. It wouldn't have survived without macros.
23:39:12
an_origamian[m]
And the call, which sets x even though the setting is done inside the function.
23:39:55
pjb
ieure: and even, before macros, there was fexprs, which were functions for which arguments weren't evaluated, that acted like macros.
23:40:44
an_origamian[m]
It looks to me like dynamic scope may have been essential for simple implementation of fexprs.