Please search my post for ‘hygiene’. I didn’t mention the word. Off — Matthias



> On Oct 18, 2017, at 3:53 AM, Konrad Hinsen <konrad.hin...@fastmail.net> wrote:
> 
> Matthias,
> 
>> It’s quite doable but I think this misses the point
> 
> I see that I haven't made my point clearly enough (if at all). I
> certainly don't want to go back to unhygienic macros without error
> checking.
> 
> What I do want to go back to is doing simple manipulations of syntax
> objects using familiar list functions. A simple example I encountered
> recently is probably the best illustration.
> 
> Somewhere in a syntax class, I had a syntax object which was checked to
> be a list with at least three elements. I needed to remove the first
> element and add it in front of the others. On a plain list, I could do
> this half asleep. But with the list wrapped in a syntax object, even
> after considerable thought I am not sure what the best approach would
> be.
> 
> Unwrap (syntax->datum), apply list functions, rewrap? The resulting code
> is not very readable, the wrapping stuff being much more visible than
> the code that does the real work. Pattern match against (a b c ...)? OK
> for this particular case, but not for the next case I knew I would
> have to deal with. Read through the extensive documentation of
> syntax-parse, hoping to find the perfect solution?  Not a very exciting
> prospect.
> 
> Note that hygiene is not an issue here. In 80% of my macro code, hygiene
> is not an issue, nor is error checking. For the other 20%, syntax-parse
> is just fine.
> 
>> I think what we’re really seeing here is that backwards compatibility
>> sometimes smothers elegant solutions.  I firmly believe that in this
>> case we should simply throw out syntax-rules and syntax-case
> 
> A very good idea. At least throw it out from the tutorials and all
> example code. Point people to syntax-parse right from the start.  Keep
> syntax-case to avoid breaking code, but don't advertise it any more.
> 
>> Other Matthew has written a book from a particular angle. It’s
>> beautiful but clearly leaves an unsatisfied need behind. 
> 
> I'd say the unsatisfied need is in between the tutorial for beginners
> and the reference documentation. Something that helps finding a good
> solution for a specific problem, for someone who knows the basics of
> syntax-parse. It could be a curated collection of case studies.
> 
> Konrad.

-- 
You received this message because you are subscribed to the Google Groups 
"Racket Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to racket-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to