Sizzle is not a complete implementation of Scheme as defined in the Revised 5 Report on the Algorithmic Language Scheme (R5RS), but most of the standard procedures from that report and all data types except complex and rational numbers are supported. This chapter lists all differences between Sizzle and standard Scheme.
First of all, Sizzle does only support non-hygienic macros at all, and
the high-level syntax definitions from R5RS are implemented a little bit
shaky. call-with-current-continuation only works in upward
direction properly, general continuations can be compiled in, but are
buggy and will segfault in the current state. Besides of that, Sizzle
is a quite useful language for embedding and higher-order functional
programming purposes.
The following data types are implementd in Sizzle, including most standard procedures for manipulating objects of these types.
The numerical tower is not fully implemented, not available are the number types:
These are the standard procedures defined in Sizzle.
quote, quasiquote, unquote, unquote-splicing, lambda, if, cond, case, set!, and, or, do, let, let*, letrec, begin, define
eqv?, eq?, equal?, number?, complex?, real?, rational?, integer?, exact?, inexact?, zero?, positive?, negative?, odd?, even?, max, min, +, *, -, /, abs, quotient, remainder, modulo, floor, ceiling, truncate, round, exp, log, sin, cos, tan, asin, acos, atan, atan, sqrt, expt, exact->inexact, inexact->exact, number->string, number->string, string->number, string->number, gcd, lcm, not, boolean?, pair?, cons, car, cdr, set-car!, set-cdr!, caar, cadr, ..., cdddar, cddddr, null?, list?, list, length, append, reverse, list-tail, list-ref, memq, memv, member, assq, assv, assoc, symbol?, symbol->string, string->symbol, char?, 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, char-downcase, string?, make-string, make-string, string, string-length, string-ref, string-set!, string=?, string<?, string>?, string<=?, string>=?, string-ci=?, string-ci<?, string-ci>?, string-ci<=?, string-ci>=?, substring, string-append, string->list, list->string, string-copy, string->fill!, vector?, make-vector, make-vector, vector, vector-length, vector-ref, vector-set!, vector->list, list->vector, vector-fill!, procedure?, apply, map, for-each, eval, interaction-environment, call-with-input-file, call-with-output-file, with-input-from-file, with-output-to-file, input-port?, output-port?, current-input-port, current-output-port, open-input-file, open-output-file, close-input-port, close-output-port, read, read-char, peek-char, write-char, eof-object?, write, display, newline, delay, force, values, call-with-values, dynamic-wind, transcript-on, transcript-off, null-environment, scheme-report-environment, char-ready?
primitive-load, which works like
load as defined in R5RS. The Scheme procedure load in
Sizzle searches all directories listed in the variable
%load-path as well as the current directory if the given
filename is not absolute.
rationalize, make-rectangular, make-polar
Go to the first, previous, next, last section, table of contents.