Path: utzoo!utgpu!news-server.csri.toronto.edu!rutgers!mit-eddie!mintaka!mintaka.lcs.mit.edu!alan From: alan@lcs.mit.edu (Alan Bawden) Newsgroups: comp.lang.scheme Subject: Re: Letrecs and continuations Message-ID: Date: 20 May 91 22:32:54 GMT References: <1991May20.092814.27355@news.cs.indiana.edu> Sender: news@mintaka.lcs.mit.edu Distribution: comp Organization: ITS Preservation Society Lines: 22 In-Reply-To: hieb@heston.cs.indiana.edu's message of 20 May 91 14:28:02 GMT In article <1991May20.092814.27355@news.cs.indiana.edu> hieb@heston.cs.indiana.edu (Robert Hieb) writes: R^3.99, section 4.2.2, states that for a "letrec": Semantics: The s are bound to fresh locations holding undefined values, the s are evaluated in the resulting environment (in some unspecified order), each is assigned to the result of the corresponding , the is evaluated in the resulting environment, and the value of the last expression in is returned. This implies that the evaluation of all the initial values takes place before any of the values are assigned to their respective variables. That is what the rewrite rule for "letrec" in section 7.3 does, but the above does not, so it may not be accidental after all. Yup, I agree, that does say it. I still wonder, though, if it might be accidental overspecification. Certainly several implementation have been demonstrated to be unaware of this aspect of LETREC's behavior -- so I can easily imagine this is an issue that was never discussed by the R^nRS authors before.