t3x.org / sketchy / sk09.html
SketchyLISP
Reference
  Copyright (C) 2006
Nils M Holm

9 Differences to Scheme

9.1 First Class Environments in Closures

SketchyLISP supports three-argument lambda functions, where the third argument is an association list containing the lexical context of the resulting closure:

(lambda (x) (not (p x)) ((p . #<primitive pair?>)))

Scheme does not support first-class lexical environments.

9.2 Functions

There are some subtle departures from R5RS in the cond and define pseudo function of SketchyLISP. See their descriptions in the Primitive Functions chapter for details.

SketchyLISP's bottom, list->integer, and integer->list functions do not have any counterparts in Scheme. The latter two are implemented easily, though.

Many essential functions that are part of R5RS Scheme are not implemented in SketchyLISP. See the Library Functions chapter to see what actually is implemented.

9.3 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.