t3x.org / sketchy / sk08.html
SketchyLISP
Reference
  Copyright (C) 2007
Nils M Holm

8 Differences to Scheme

8.1 Syntax

Because SketchyLISP is purely applicative, some of its syntaxes are a little more strict than their Scheme counterparts. For example,

8.2 Syntax Transformers

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.

8.3 Omissions

The following R5RS functions and other features are not implemented in SketchyLISP.

8.3.1 Concepts

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.

8.3.2 Functions

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