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
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
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
loadas defined in R5RS. The Scheme procedure
loadin Sizzle searches all directories listed in the variable
%load-pathas 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.