SketchyLISP Reference |
Copyright (C) 2007 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, the =>
operator of cond
, mutable
data, multiple values, numeric base prefixes (#b #d #o #x
).
First-class continuations were part of SketchyLISP up to version 2006-11-27. They are no longer part of the language.
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? 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-current-continuation
call-with-values case delay do dynamic-wind eval for-each force let-syntax
letrec-syntax make-string set! set-car! set-cdr! string-copy string-fill!
string-set! transcript-off transcript-on values
[<<Interpreter API] | [Contents] [Index] | [Meta Commands>>] |