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 ticket #115
cc
changetime
2011-05-19 14:19:10
component
WG1 - Core
description
`(let ((cdr #f)) (length '(a b c)))` and `(define cdr #f) (length '(a b c)))` should not throw exceptions, because binding or mutating the variable `cdr` should not affect the behavior of `length`.
id
115
keywords
milestone
owner
alexshinn
priority
major
reporter
cowan
resolution
worksforme
severity
status
closed
summary
Rebinding variables shouldn't affect the behavior of standard procedures
time
2010-12-23 10:05:25
type
defect
Changes
Change at time 2011-05-19 14:19:10
author
alexshinn
field
comment
newvalue
In the chapter "Standard Procedures:"
> A program may use a top-level definition to bind any variable.
> It may subsequently alter any such binding by an assignment (see
> Assignments). These operations do not modify the behavior of
> Scheme's built-in procedures. Altering any top-level binding
> that has not been introduced by a definition has an unspecified
> effect on the behavior of the built-in procedures.
this was introduced in IEEE Scheme, and therefore cannot be
removed without an argument that it is fundamentally broken.
I've seen no one argue against this, so will close the ticket.
oldvalue
2
raw-time
1305789550000000
ticket
115
time
2011-05-19 14:19:10
Change at time 2011-05-19 14:19:10
author
alexshinn
field
resolution
newvalue
worksforme
oldvalue
raw-time
1305789550000000
ticket
115
time
2011-05-19 14:19:10
Change at time 2011-05-19 14:19:10
author
alexshinn
field
status
newvalue
closed
oldvalue
new
raw-time
1305789550000000
ticket
115
time
2011-05-19 14:19:10
Change at time 2010-12-23 13:37:19
author
cowan
field
comment
newvalue
Most Schemes already behave like this (Scheme 9 is an exception), and R6RS requires it.
oldvalue
1
raw-time
1293082639000000
ticket
115
time
2010-12-23 13:37:19