8 Base language
define
define-struct
if
cond
else
case
quote
unquote
unquote-splicing
lambda
case-lambda
let
let*
letrec
letrec-values
local
quasiquote
begin
begin0
set!
and
or
when
unless
recur
require
for-syntax
define-for-syntax
begin-for-syntax
prefix-in
only-in
provide
planet
all-defined-out
all-from-out
except-out
rename-out
define-syntax
let/cc
with-continuation-mark
true
false
pi
e
empty
eof
null
shared
with-handlers
write
display
newline
current-print
current-continuation-marks
continuation-mark-set?
continuation-mark-set->list
for-each
make-struct-type
make-struct-field-accessor
make-struct-field-mutator
struct-type?
struct-constructor-procedure?
struct-predicate-procedure?
struct-accessor-procedure?
struct-mutator-procedure?
procedure-arity
procedure-arity-includes?
make-arity-at-least
arity-at-least?
arity-at-least-value
apply
values
call-with-values
compose
current-inexact-milliseconds
current-seconds
not
void
random
sleep
identity
raise
error
make-exn
make-exn:fail
make-exn:fail:contract
make-exn:fail:contract:arity
make-exn:fail:contract:variable
make-exn:fail:contract:divide-by-zero
exn-message
exn-continuation-marks
exn?
exn:fail?
exn:fail:contract?
exn:fail:contract:arity?
exn:fail:contract:variable?
exn:fail:contract:divide-by-zero?
*
-
+
=
=~
/
sub1
add1
<
>
<=
>=
abs
quotient
remainder
modulo
max
min
gcd
lcm
floor
ceiling
round
numerator
denominator
expt
exp
log
sin
cos
tan
asin
acos
atan
sinh
cosh
sqr
sqrt
integer-sqrt
make-rectangular
make-polar
real-part
imag-part
angle
magnitude
conjugate
sgn
inexact->exact
exact->inexact
number->string
string->number
procedure?
pair?
cons?
empty?
null?
undefined?
immutable?
void?
symbol?
string?
char?
boolean?
vector?
struct?
eof-object?
bytes?
byte?
number?
complex?
real?
rational?
integer?
exact?
inexact?
odd?
even?
zero?
positive?
negative?
box?
hash?
eq?
eqv?
equal?
equal~?
false?
boolean=?
symbol=?
cons
car
cdr
caar
cadr
cdar
cddr
caaar
caadr
cadar
cdaar
cdadr
cddar
caddr
cdddr
cadddr
rest
first
second
third
fourth
fifth
sixth
seventh
eighth
length
list?
list
list*
list-ref
list-tail
append
reverse
map
andmap
ormap
memq
memv
member
memf
assq
assv
assoc
remove
filter
foldl
foldr
quicksort
sort
argmax
argmin
build-list
box
box-immutable
unbox
set-box!
make-hash
make-hasheq
hash-set!
hash-ref
hash-remove!
hash-map
hash-for-each
make-string
replicate
string
string-length
string-ref
string=?
string-ci=?
string<?
string>?
string<=?
string>=?
string-ci<?
string-ci>?
string-ci<=?
string-ci>=?
substring
string-append
string->list
list->string
string-copy
string->symbol
symbol->string
format
printf
string->int
int->string
explode
implode
string-alphabetic?
string-ith
string-lower-case?
string-numeric?
string-upper-case?
string-whitespace?
build-string
string->immutable-string
string-set!
string-fill!
make-bytes
bytes
bytes->immutable-bytes
bytes-length
bytes-ref
bytes-set!
subbytes
bytes-copy
bytes-fill!
bytes-append
bytes->list
list->bytes
bytes=?
bytes<?
bytes>?
make-vector
vector
vector-length
vector-ref
vector-set!
vector->list
list->vector
build-vector
char=?
char<?
char>?
char<=?
char>=?
char-ci=?
char-ci<?
char-ci>?
char-ci<=?
char-ci>=?
char-alphabetic?
char-numeric?
char-whitespace?
char-upper-case?
char-lower-case?
char->integer
integer->char
char-upcase
char-downcase
call-with-current-continuation
call/cc
call-with-continuation-prompt
abort-current-continuation
default-continuation-prompt-tag
make-continuation-prompt-tag
continuation-prompt-tag?
make-reader-graph
make-placeholder
placeholder-set!
8.1 Deviations from ASL
+, *, / don’t take at least two arguments.
and, or don’t require at least two arguments.
set! allowed on function arguments.
syntactic keywords can be used as variable names.
displayed output is not identical with regards to shared values and constructor output.
- The following primitives have not been implemented:
: (signature definition)
define-datatype
match
delay
check-member-of
check-range
check-error
exit
force
gensym
promise
pretty-print
print
read
with-input-from-file
with-input-from-string
with-output-to-file
with-output-to-string
hash-copy
hash-count
hash-eq?
hash-equal?
hash-eqv?
hash-has-key?
hash-ref!
hash-update!
make-hasheqv
make-immutable-hash
make-immutable-hasheq
make-immutable-hasheqv