Sketchy LISP
Volume 2 - Reference
  Copyright (C) 2006
Nils M Holm

Buy a printed copy

A Condensed Introduction to Functional Programming in Scheme

7 Differences to Scheme

7.1 First Class Environments in Closures

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

7.2 Functions

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

Sketchy'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 Sketchy. See the Library Functions chapter to see what actually is implemented.

7.3 Dotted Pairs

Because Sketchy does not have floating point numbers, it does not require a space character before and after the dot of a dotted pair, and so the notations '(x.y) and '(x . y) are equivalent.

In R5RS Scheme, the spaces around dots are needed to distinguish between pairs and lists of floating point numbers. Without the spaces, it would be impossible to decide whether '(1.2) is a dotted pair containing the integers 1 and 2 or a list containing the floating point number 1.2.