On Wed, Feb 25, 2009 at 8:17 AM, Lynn Winebarger <[email protected]> wrote:
> On Wed, Feb 25, 2009 at 7:50 AM, Sam TH <[email protected]> wrote:
>> On Wed, Feb 25, 2009 at 1:44 AM, John Cowan <[email protected]> wrote:
>>> Frankly, I continue to think that macro systems other than syntax-rules
>>> (which I agree is a great thing) are way too scary to use.
>>
>> I hope you don't think that this is a necessary feature of procedural
>> macro systems, just that they haven't been presented in the
>> appropriate form.  But I do think that this is an indictment of those
>> of use who love Scheme's more powerful macro features, for not having
>> explained their usefulness or their usability.
>
> Do you similarly indict users of indirection for not having adequately
> explained the usability of pointers to the masses?  There appears to
> be a large subset of humanity for whom pointers are never going to be
> usable.
>
> The macro stepper is a helpful tool, but understanding and designing
> macros is another of those really big steps.  It's just really easy to
> not understand the meaning of a macro after I wrote it.  Err, "after
> writing it" - Freudian slip.

To answer by another analogy -

Higher-order functions can seem hard.  Most programmers, in fact,
never understand them.  But that doesn't mean that it's impossible to
teach them well, so that anyone can understand them.  In fact, the
class I'm teaching this semester, to freshmen, will cover them, and
we'll expect all of them to understand.  I can expect this because
we've put a lot of effort into the pedagogy and software
infrastructure behind this class, and so we're able to teach them
concepts that might otherwise seem hard.

I don't think the procedural macros in Dybvig's tutorial paper [1] are
as hard as `map', `filter' and `foldr'.  We just haven't found the
write way to teach and present them yet.

[1] http://www.cs.indiana.edu/~dyb/pubs/tr356.pdf
-- 
sam th
[email protected]

_______________________________________________
r6rs-discuss mailing list
[email protected]
http://lists.r6rs.org/cgi-bin/mailman/listinfo/r6rs-discuss

Reply via email to