8 Base language
| (require (planet dyoo/js-vm:1:10/lang/base)) | 
- 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