[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Fixing null-environment and scheme-report-environment



I personally don't think this is the right way to define this--I really do 
think any verbiage spent on describing what happens in other versions is
leading down a path to semantic confusion because it appears to make this
language definition a closure over the others, and because it implicitly
places a burden on other implementations (past and future) which I don't 
think it has the power to place.

Further, the phrase "only the set of bindings specified in the corresponding
report that the implementation supports" has two parses, at least one of which
is NOT what you want and needs to be fixed in any case.  (It appears to say
that you are allowed to support only a subset and that this will magically
reveal the subset.)

I think it would be better to say:

==============================================================================

 (scheme-report-environment _version_)                procedure
 (null-environment _version_)                         procedure

 _Version_ must be the exact non-negative integer _k_ (i.e., 5) corresponding
 to this revision of the Revised^k Report on Scheme.

 SCHEME-REPORT-ENVIRONMENT returns a specifier for an environment that 
 contains only the set of bindings defined in this report.

 NULL-ENVIRONMENT returns a specifier for an environment that contains only
 the (syntactic) bindings for all the syntactic keywords defined in this
 report.

 Whether or not other values of _version_ are supported in any implementation
 conforming to this report is implementation-defined.  An error is signalled
 if an argument is given that is neither the revision number of this report 
 (i.e., 5) nor some other value defined by the implementation.