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

Re: Existing implementations



On 14 Sep 1999, sperber@xxxxxxxxxxxxxxxxxxxxxxxxxxx wrote:

 > It would be nice if the SRFI could get more concrete about existing
 > Scheme systems implementing related functionality.

Point taken.

 > A few data points off the top of my head:
 > 
 > - MzScheme has CASE-LAMBDA and LET-VALUES, but LET-VALUES works
 >   slightly differently.  Instead of FLUID-LET, it has PARAMETERIZE.

CASE-LAMBDA as proposed is, as far as I could tell, compatible with
CASE-LAMBDA both in Chez Scheme and MzScheme.

LET-VALUES in MzScheme has a compatible syntax and more restrictive
meaning, as I outlined in a recent message.

MzScheme actually has both FLUID-LET and PARAMETERIZE.  Its FLUID-LET
does not protect against exits from and reentries to the dynamic scope
(neither in the specification nor in the implementation). 

PARAMETERIZE does not operate on variables but on the values stored in
parameters, which are procedure values; while PARAMETERIZE may well be a
better way of handling dynamically scoped values than FLUID-LET, it is
really a different mechanism altogether.

 > - Scheme 48 has LET-FLUID, but it works diffferently.  (It only works
 >   for special fluid values.)

Which, again, may be a better way of handling dynamically scoped values
than FLUID-LET as I've specified it, but the intent of the proposal was
really to codify an existing practice with a particular meaning, notably
the protection of the variables across exits from and reentries to the
scope.

--lars