I've implemented what I described earlier, as well as the error on 3D
values in a #:with clause or ~parse right-hand side.
Pattern variables that come from syntax-parse already acted differently;
if they weren't syntax-valued, they raised errors. All I've done now is
turn some error cases into non-error cases.
Ryan
On 06/01/2013 11:55 AM, Eric Dobson wrote:
I would say not to implement this just on my behalf. I think it would
be weird for pattern variables to act differently if they came from
syntax-parse versus from with-syntax.
On Fri, May 31, 2013 at 2:17 PM, Sam Tobin-Hochstadt <sa...@ccs.neu.edu> wrote:
On Fri, May 31, 2013 at 4:42 PM, Ryan Culpepper <ry...@ccs.neu.edu> wrote:
Note, however, that the syntax class now uses #:attr instead of #:with.
That's the main usability issue I'm worried about with this change.
Following with-syntax's lead, a #:with clause automatically converts its
right-hand side to syntax---even if the result is "3D". That means that if
you forget that step of the conversion to laziness, you'll probably get
bizarre 3D syntax. I could change #:with to raise an error in some/all 3D
cases, but that might break existing programs.
Is anyone out there using syntax-parse to make 3D syntax?
I'm sure all the places where I do this are bugs (and it has happened
to me), so I'd welcome this error.
Sam
____________________
Racket Users list:
http://lists.racket-lang.org/users