5 ms·
JavaScript and R are more Lisp-inspired to me. I tend to think of the Lisp family as containing Scheme, Clojure, and other languages with a fairly close resemb
by actuallyalys 3y ago
JavaScript and R are more Lisp-inspired to me. I tend to think of the Lisp family as containing Scheme, Clojure, and other languages with a fairly close resemblance. Common Lisp, its predecessors, and a few other languages like uLisp are more closely related still and are practically, if not strictly, the same language.
I’m not sure this informal taxonomy is “right,” but it seems to be useful and in line with common usage.
- lispm 3y agowhat is this fairly close resemblance? Parentheses? There are a bunch of Lisp like languages without s-expression syntax: Lisp 2, Logo, MDL, RLISP, CLISP (not the CL implementation), Dylan, Racket with its new syntax (Racket2, Rhombus), Skill, ... For example Dylan is based on Scheme & CLOS + a different syntax + some other influences. https://opendylan.org https://opendylan.org https://github.com/dylan-lang/opendylan/blob/master/sources/examples/windows/windows-gadgets-example/example.dylan https://github.com/dylan-lang/opendylan/blob/master/sources/...
- actuallyalys 3y agoExpression-based and supporting macros are two big features JavaScript lacks that the ones with the close resemblance have. Subjectively, they also have constructs in common that make coding relatively similar (although the presence of features like CLOS, continuations, and multimethods can have a pretty big effect). And yes, they use the same S-expression syntax. (Although you can be a Lisp without it.) In fairness, R might be closer than I realized since I’ve never done extensive programming in it.
- lispm 3y agoJavaScript started as a Scheme inspired language. It has runtime evaluation, a serialized data structure format, first class functions, garbage collection, dynamic typing, functional/imperative/object-oriented features, Many languages are not just looking at the syntax or the user-facing features of the language, but also at the implementation techniques of Lisp-like languages. An early example was Garbage Collection, which was invented for automatic and dynamic memory management of linked lists in the first Lisp implementation. R for example started as an attempt to reimplement S with a Scheme-like runtime.