Sorry for the delay. In this case, Eric's interpretation is the one I had in mind!
On Mon, Aug 30, 2010 at 9:40 AM, Eric Tanter <[email protected]> wrote: > Hi Ionut, Jay, > > I don't understand the question this way -- rather, how to maintain laziness > without introducing an extra variant of CFAE-Value, ie. reusing the Closure > variant to implement expression closures. > > Maybe Shriram can confirm which interpretation is correct ;) > > -- Éric > > > On Aug 30, 2010, at 9:21 AM, Jay McCarthy wrote: > >> Hi Ionut, >> >> In this section PLAI is asking you to write more of a meta-interpreter >> where you use the thunks of the language you are writing the >> interpreter in. >> >> Jay >> >> On Mon, Aug 30, 2010 at 2:23 AM, Ionut G. Stan <[email protected]> >> wrote: >>> Hi, >>> >>> I'm pretty sure this is not the best mailing list to ask about PLAI, but as >>> I've found no other I decided to try here (I've found about PLAI on the >>> original DrScheme mailing list, and racket-lang.org seems to mention PLAI in >>> the "Learning" section). I won't mind if I don't get an answer to my >>> question though. Maybe there's a dedicated mailing list? >>> >>> So, here's my problem, just in case :) >>> >>> I'm stuck understanding what a certain exercise is asking me. I'm talking >>> about exercise 8.2.1 from chapter 8, Implementing Laziness. >>> >>> The exercise asks to implement laziness without using expression closures, >>> but using thunks instead. Thunks being just like closure, except they don't >>> have arguments bound to them. What I don't understand is the fact that this >>> is the way I've implemented expression closures. They're just like closures, >>> except for the argument part. So, from my point of view, is just a matter of >>> renaming my algebraic data types. >>> >>> I'm using Haskell to implement all the languages discussed in the book, and >>> my ADT for CFAE/L-Value looks like this: >>> >>> data CFAELValue >>> = NumberValue Int >>> | Closure String CFAEL Environment >>> | Expression CFAEL Environment >>> deriving (Eq, Show) >>> >>> So, Expression is the constructor for expression closures, and the only >>> difference when compared to Closure is the String argument. >>> >>> Is anyone willing to shed some light on what the exercise does actually >>> require me to do? >>> >>> Just for completeness, I've put the Haskell sources for all the languages up >>> to chapter 8 on Github: http://github.com/igstan/plai-haskell. CFAE-L.hs is >>> the one used for chapter 8. >>> >>> Thanks. >>> >>> -- >>> Ionuț G. Stan | http://igstan.ro >>> _________________________________________________ >>> For list-related administrative tasks: >>> http://lists.racket-lang.org/listinfo/users >> >> >> >> -- >> Jay McCarthy <[email protected]> >> Assistant Professor / Brigham Young University >> http://teammccarthy.org/jay >> >> "The glory of God is Intelligence" - D&C 93 >> _________________________________________________ >> For list-related administrative tasks: >> http://lists.racket-lang.org/listinfo/users > > _________________________________________________ > For list-related administrative tasks: > http://lists.racket-lang.org/listinfo/users _________________________________________________ For list-related administrative tasks: http://lists.racket-lang.org/listinfo/users

