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 #55

cc


    

changetime

2011-01-24 06:38:39

component

WG1 - Core

description

R5RS provides a simple mechanism for easy cases of lazy evaluation.  It does not support generalized lazy evaluation, because all built-in procedures are eager whether they 'need' to be or not.  The relevant identifiers are `delay` and `force`; they are not present in IEEE Scheme.  SRFI 45 argues that this pair is insufficient for expressing common lazy algorithms in a way that preserves tail recursion, and adds `lazy` (equivalent to `(delay (force ...))`, but acting atomically) and `eager`.   The semantics of `delay` and `force` remain downward compatible.

id

55

keywords


    

milestone


    

owner

alexshinn

priority

major

reporter

cowan

resolution

wontfix

severity


    

status

closed

summary

Lazy evaluation

time

2010-05-02 23:46:34

type

defect

Changes

Change at time 2011-01-24 06:38:39

author

cowan

field

comment

newvalue

WG1 voted to reject SRFI 55.

oldvalue

4

raw-time

1295822319000000

ticket

55

time

2011-01-24 06:38:39

Change at time 2011-01-24 06:38:39

author

cowan

field

resolution

newvalue

wontfix

oldvalue


    

raw-time

1295822319000000

ticket

55

time

2011-01-24 06:38:39

Change at time 2011-01-24 06:38:39

author

cowan

field

status

newvalue

closed

oldvalue

new

raw-time

1295822319000000

ticket

55

time

2011-01-24 06:38:39

Change at time 2010-11-15 09:59:39

author

alexshinn

field

comment

newvalue

Regarding the sample implementation from R5RS, it does
memoize via `make-promise` so there's no need to change it.

oldvalue

3

raw-time

1289786379000000

ticket

55

time

2010-11-15 09:59:39

Change at time 2010-10-18 11:27:04

author

cowan

field

comment

newvalue


    

oldvalue

2

raw-time

1287376024000000

ticket

55

time

2010-10-18 11:27:04

Change at time 2010-10-18 11:27:04

author

cowan

field

component

newvalue

WG1 - Core

oldvalue

WG2 - Base Library

raw-time

1287376024000000

ticket

55

time

2010-10-18 11:27:04

Change at time 2010-10-18 11:27:04

author

cowan

field

owner

newvalue

alexshinn

oldvalue

cowan

raw-time

1287376024000000

ticket

55

time

2010-10-18 11:27:04

Change at time 2010-05-02 23:48:57

author

cowan

field

comment

newvalue

I favor the SRFI 45 argument; see the SRFI itself for details.

I think the four identifiers should be in an optional module.

Editorial note: the sample implementation given in R4RS and R5RS does not conform to the specification (it doesn't memoize) and should be removed or replaced.

oldvalue

1

raw-time

1272818937000000

ticket

55

time

2010-05-02 23:48:57