Reputation: 7271
What constitutes the core of the Racket programming language? Is the core based off any RnRS specification with all the extras such as the numerous sequence methods based of that tiny core or is everything in the reference part of the language core?
Upvotes: 9
Views: 394
Reputation: 10653
Racket is built on top of a core language exported by the #%kernel
built-in module. The kernel syntactic forms are described in the documentation for fully-expanded programs. The kernel module also exports a large number of primitive functions, such as cons
, vector-ref
, and make-struct-type
.
Most of these syntactic forms and functions are also part of the Racket base language (racket/base
), so they're documented in the Racket reference. The primitive functions aren't marked as being part of the kernel language, because it's mainly considered an implementation detail. On the other hand, the primitive syntactic forms are documented specially because they're the only ones that appear in the results of expand
.
Upvotes: 11