SketchyLISP Reference |
Copyright (C) 2006 Nils M Holm |
[<<Interpreter API] | [Contents] [Index] | [Meta Commands>>] |
Because SketchyLISP is purely applicative, some of its syntaxes are a little more strict than their Scheme counterparts. For example,
cond
must have a default clause;
case
must have a default case;
if
must have an alternative;
begin
.
SketchyLISP syntax transformers implement ony a subset of R5RS syntax transformers:
_
.Syntax transformers are first class objects in SketchyLISP:
let* => #<syntax let*>
This is not necessarily contradition in terms, but it accounts for the fact that syntax transformers are only recognized in car positions of lists.
The following R5RS functions and other features are not implemented in SketchyLISP.
Rational numbers, floating point numbers, complex numbers,
vectors, quasi quotation, lazy evaluation, input/output port data
types, mutable data, multiple values, numeric base prefixes
(#b #d #o #x
).
Quasi quotation: , ,@ / ` quasiquote
unquote unquote-splicing
Input/Output: call-with-input-file
call-with-output-file close-input-port close-output-port
current-input-port current-output-port char-ready? input-port?
open-input-file open-output-file output-port? peek-char port?
Numeric: acos angle asin atan ceiling
complex? cos denominator exact->inexact exact? exp floor imag-part
inexact->exact inexact? log magnitude make-polar make-rectangular
numerator rational? rationalize real-part real? round sin tan truncate
Vectors: list->vector make-vector vector
vector->list vector-fill! vector-length vector-ref vector-set! vector?
Other: call-with-values case delay do
dynamic-wind eval for-each force let-syntax letrec-syntax make-string
set! set-car! set-cdr! setcar string-copy string-fill! string-set!
transcript-off transcript-on values
[<<Interpreter API] | [Contents] [Index] | [Meta Commands>>] |