This site is a static rendering of the Trac instance that was used by R7RS-WG1 for its work on R7RS-small (PDF), which was ratified in 2013. For more information, see Home. For a version of this page that may be more recent, see DisjointPromises in WG2's repo for R7RS-large.

Disjoint­Promises

cowan
2014-12-28 08:24:10
6history
source

Testing the usual suite of Schemes to see whether promises returned by delay are disjoint from procedures.

Disjoint: Racket, Gauche, MIT, Gambit, Chicken, Guile, Kawa, Chibi, SCM, STklos, SigScheme, TinyScheme, RScheme, Dream, BDC, XLisp, Elk, UMB, VX, SXM, Sizzle, Spark, Sagittarius (note that in TinyScheme and Dream promises can be invoked)

Not disjoint: Bigloo, Scheme48/scsh, SISC, Chez, Vicare, Larceny, Ypsilon, Mosh, IronScheme, NexJ, Scheme 9, Schemik, Inlab, Owl Lisp

delay undefined: KSi, Shoe, S7, Rep, Llava, FemtoLisp, Dfsch

Buggy implementation: Oaklisp

Note: In Owl Lisp, repeated forces re-evaluate the delayed expression, because Owl Lisp is immutable.

See also ForceNonPromise.