31 Aug 21:14
Re: Compiler's bane
Andrew Coppin <andrewcoppin <at> btinternet.com>
2008-08-31 19:14:14 GMT
2008-08-31 19:14:14 GMT
Ryan Ingram wrote: > What are you trying to get from the "let" binding? Sharing? > Convinience. let x = foo in bar is so much easier to write than (\x -> bar) foo when foo and/or bar is large. Trouble is, as soon as you allow let-bindings, some clever person is going to start writing recursive ones. And actually, that's a useful thing to be able to do, but it makes figuring out the technical details... rather nontrivial. (Seriously, I had no idea I was going to get into this much trouble!) > The usual idea is that "let" represents heap allocation, and you > evaluate the leftmost-outermost redex as usual, doing let substitution > only when necessary to continue evaluation, and garbage-collecting > bindings that no longer refer to variables in the current computation Right. So ignore the let-bindings unless the redex of interest is a let-bound variable? That sounds reasonably easy...
RSS Feed