3 ms·
>macros, which you really shouldn't make much use of in the more modern understanding Well, only if you're stuck with a broken macro system (cough cough Common
by qwertyuiop924 10y ago
>macros, which you really shouldn't make much use of in the more modern understanding
Well, only if you're stuck with a broken macro system (cough cough Common Lisp cough cough). Here in scheme, we have er-macros and sc-macros, as well as syntax-rules. Hygene matters, and procedural macros rock, although you want declarative for the simple things. pg really made the wrong call on that, and it will probably haunt arc for years to come.
- jerf 10y agoAs everyone knows, Scheme is a Lisp 2 out of 7 days of the week + state holidays. Where I am, it's one of those days. YMMV depending on your relationship to the International Date Line.
- qwertyuiop924 10y agoScheme is a lisp all 7 days. What makes you think otherwise?
- jerf 10y agoTake it up with these people: https://encrypted.google.com/search?hl=en&q=%22scheme%20is%20not%20lisp%22 https://encrypted.google.com/search?hl=en&q=%22scheme%20is%2... I haven't got a horse in this race.
- qwertyuiop924 10y agoYeah, no. Scheme is as much a lisp as eulisp, interlisp, common lisp, BBN lisp, maclisp, Racket (which isn't the same thing as scheme), or any other incompatible lisp. It has the macros, it has the syntax, it has the datastructures. It doesn't have nil/false equivalence, but that's not a core aspect of lisp.
- fsck--off 10y agoLook at this thread for more details: https://news.ycombinator.com/item?id=6068732 https://news.ycombinator.com/item?id=6068732
- lispm 10y agoThey are/were not all incompatible. Once there was a lot of compatibility, backwards and by layers/libraries/translators. maclisp -> Common Lisp -> Eulisp (Eulisp took a lot of inspiration from Common Lisp) BBN Lisp -> Interlisp -> Common Lisp Common Lisp ran inside Interlisp and Common Lisps had Interlisp compatibility packages. If you bought Xerox' Interlisp-D, it came with Common Lisp. The Xerox Interlisp community later contributed to Common Lisp. For example Interlisp LOOPS was developed into Common LOOPS (LOOPS in Common Lisp) and this was then developed into CLOS, the Common Lisp Object System. The Portable Common LOOPS implementation was even the reference implementation for CLOS. Scheme -> Racket -> Common Lisp Scheme had some minor influence on Common Lisp, and Common Lisp had some influence on Scheme (numerics, CLOS, ...). Years ago there were Scheme implementations in Common Lisp, compatibility languages, and even a Common Lisp implementation in Scheme. Nowadays almost nobody cares any more to make applications or libraries able to run in Scheme and Common Lisp from one code base. Take Common Music. Version 2 ran in CL and Scheme. Version 3 is Scheme specific. Actually it is specific to its own Scheme version S7 and a new surface language: SAL. This compatibility does not exist anymore. Interlisp is gone. Scheme is now its own language universe. PLT Scheme was renamed to Racket to prevent users from thinking Racket cares about compatibility with Scheme. What was once a language group with dialects of a core language, is now not more than a bunch of ideas, where independent language camps pick/mix freely whatever they find important. For all practical work (!) they are now fully incompatible. Some languages still have a common core (Common Lisp, Emacs Lisp, ISLisp, Visual Lisp), while others have new cores: Scheme and Clojure are cores of new languages, with their own syntax, semantics and pragmatics. Neither of those cares about any form of compatibility or code sharing anymore.
- dragonwriter 10y ago> PLT Scheme was renamed to Racket to prevent users from thinking Racket cares about compatibility with Scheme. No, PLT Scheme was renamed to Racket to reflect the fact that the base language does not (and had not even prior to the rename) really target compatibility with any of the scheme standards, though using its module language approach, Racket includes both R5RS and R6RS Scheme implementations, so its not at all the case that Racket doesn't care about Scheme compatibility, its just bigger than just that.