On Thu, Jul 8, 2010 at 11:19 AM, Matthias Felleisen <matth...@ccs.neu.edu> wrote: > > On Jul 7, 2010, at 5:55 PM, Eli Barzilay wrote: > >> Some examples that show how useful this is: >> >> * In the lazy language you want the implicit begin to force all >> expressions except for the last one. >> >> * I've redefined the implicit begin (in an ugly way) for my course >> language to force all non-tail expressions to have a `Void' type. >> >> * The scribble/text language should really return a list of all >> values instead of just the last one. It currently provides `text' >> that builds on `begin/collect', which allows each block of >> consecutive definitions to be mutually recursive -- this is now a >> problem in that it's different in a subtle way than the default >> implicit begin. >> >> I think that a good goal is to have all of these uses available as >> simple macro definitions. >> >> If you take the lazy use as an example, then just a single `#%body' >> thing is not enough: since it needs to force only expressions, then >> having a `#%body' means that it will need to do its own crawling over >> the expressions to find which ones are not definitions and force >> them. So it looks like another special #% macro would be needed, and >> even that is not enough to implement the last one conveniently, since >> it needs to collect all non-definition expressions and combine them. > > > 1. Three distinct examples (plus Algol, which could benefit too) sound like > enough. > > 2. I do not understand why #%body isn't enough. Couldn't #%body locally > expand to the point where defs and exps are distinguished? > > 3. Also, I am beginning to wonder whether the right name is #%block-begin of > #%body-begin > > 4. The next thing to consider is whether #%module-begin and #%block-begin are > truly separate features. In a sense, we now should say that modules are just > bodies. Or is there a difference?
#%module-begin as the top level controlling macro is a distinguishing feature. Requires and provides can only be there and you know there's only one application. Jay -- Jay McCarthy <j...@cs.byu.edu> 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/dev