There are already some resources out there
What is missing?
- 'Racket' is both a distribution and a language. Racket-the-distribution includes; Racket-the-language, Typed Racket, Swindle, FrTime Lazy Racket, R5RS Scheme, R6RS Scheme, Scribble, Datalog, Racklog, Algol 60 and several teaching languages language.
- Compiled not interpreted.
- Lisp-1
- What else?
(This topic/post is 'wiki' so you should be able to edit it)
5 Likes
Clojure collates this all into one place Clojure - Differences with other Lisps
Can we do the same?
5 Likes
I know OOP isn’t in vogue right now but it also has classes.
1 Like
Racket has a pretty unique compilation model for macros as well. It is much more strict than other languages about leaking information between phases.
Related to the phase system, Racket has a strict module system. You cannot detect if a module is loaded or not without loading said module. Racket supports submodules which allow one to load the containing module without loading the submodule code.
Racket allows non-hygienic macros which still maintain hygiene except where explicitly broken since identifiers have an associated scope that can be set. I think R6RS also has this, but I don't think it is quite as powerful as Racket's macro system.
Unlike older versions of Scheme, Racket uses delimited continuations as opposed to only providing call/cc. You can implement delimited continuations on top of call/cc, but Racket provides first class support for delimited continuations.
2 Likes