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.

Source for wiki NilIsFalse version 1

author

cowan

comment


    

ipnr

127.10.177.1

name

NilIsFalse

readonly

0

text

R2RS, R3RS, and R4RS permit `()` and `#f` to be the same (in the sense of `eq?`), as is required in Common Lisp and most other Lisps; this was done to make conversion of older Lisp code easier.  For the same reason, `()` counts as false for conditional tests in R2RS and R3RS, and is permitted but not required to count as false in R4RS.  IEEE Scheme, R5RS, R6RS, or R7RS don't allow any of this confusion.

Almost all the Schemes in the test suite, even those that claim only R3RS or R4RS conformance, distinguish cleanly between `()` and `#f`, and treat only `#f` as false.  The only exceptions are XLisp and Rep, which specifically state that they draw on ideas from both Scheme and Common Lisp, and consider `()` and `#f` to be the same.

time

2013-06-22 23:40:15

version

1