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

cc


    

changetime

2012-10-15 11:48:45

component

WG1 - Core

description

R5RS sometimes places the domain conditions of a procedure before its explanation.  For example, `map` is defined thus:

  The ''lists'' must be lists, and ''proc'' must be a procedure taking as many arguments as there are ''lists'' and returning a single value. If more than one ''list'' is given, then they must all be the same length. `Map` applies ''proc'' element-wise to the elements of the ''lists'' and returns a list of the results, in order. The dynamic order in which ''proc'' is applied to the elements of the ''lists'' is unspecified.

The equivalent language in R7RS draft 6 says:

  It is an error if ''proc'' does not accept as many arguments as there are ''lists'' and return a single value.  The `map` procedure applies ''proc'' element-wise to the elements of the ''lists'' and returns a list of the results, in order.  If more than one ''list'' is given and not all lists have the same length, `map` terminates when the shortest list runs out.  It is an error for ''proc'' to mutate any of the lists.  The dynamic order in which ''proc'' is applied to the elements of the ''lists'' is unspecified.  If multiple returns occur from `map`, the values returned by earlier returns are not mutated.

Note that the statement that the ''lists'' must be lists has been removed, being subsumed by the list of naming conventions in 1.3.3.

Cowan thinks this paragraph would be more readable if the purpose of `map` appeared first, as this is the topic sentence, thus:

  The `map` procedure applies ''proc'' element-wise to the elements of the ''lists'' and returns a list of the results, in order.  If more than one ''list'' is given and not all lists have the same length, `map` terminates when the shortest list runs out.  It is an error if ''proc'' does not accept as many arguments as there are ''lists'' and return a single value.  It is also an error for ''proc'' to mutate any of the lists.  The dynamic order in which ''proc'' is applied to the elements of the ''lists'' is unspecified.  If multiple returns occur from `map`, the values returned by earlier returns are not mutated.

Shinn disagrees and insists on a vote, although there is no difference in substance.

id

343

keywords


    

milestone


    

owner

alexshinn

priority

major

reporter

cowan

resolution

fixed

severity


    

status

closed

summary

Editorial disagreement:  domain conditions before or after basic explanations?

time

2012-02-20 03:46:06

type

defect

Changes

Change at time 2012-10-15 11:48:45

author

cowan

field

comment

newvalue


    

oldvalue

3

raw-time

1350276525143069

ticket

343

time

2012-10-15 11:48:45

Change at time 2012-10-15 11:48:45

author

cowan

field

resolution

newvalue

fixed

oldvalue


    

raw-time

1350276525143069

ticket

343

time

2012-10-15 11:48:45

Change at time 2012-10-15 11:48:45

author

cowan

field

status

newvalue

closed

oldvalue

writing

raw-time

1350276525143069

ticket

343

time

2012-10-15 11:48:45

Change at time 2012-05-20 14:40:41

author

alexshinn

field

comment

newvalue


    

oldvalue

2

raw-time

1337499641056723

ticket

343

time

2012-05-20 14:40:41

Change at time 2012-05-20 14:40:41

author

alexshinn

field

status

newvalue

writing

oldvalue

decided

raw-time

1337499641056723

ticket

343

time

2012-05-20 14:40:41

Change at time 2012-04-05 09:10:10

author

cowan

field

comment

newvalue

The WG voted to reject this proposal and leave the domain information in place, but to separate the additional domain restrictions from the initial description, as a separate short paragraph immediately following the prototype, possibly de-emphasized by making it smaller. This would keep the domain in one place and still allow the first line of the description stand out prominently in the initial paragraph.

oldvalue

1

raw-time

1333591810840456

ticket

343

time

2012-04-05 09:10:10

Change at time 2012-04-05 09:10:10

author

cowan

field

status

newvalue

decided

oldvalue

new

raw-time

1333591810840456

ticket

343

time

2012-04-05 09:10:10