[racket] Macro in typed racket

From: Jack Firth (jackhfirth at gmail.com)
Date: Tue Oct 7 14:38:43 EDT 2014

I read a tweet about someone wistfully wishing there was some sort of "the"
operator in a typed non-parensy language such that one could write
something like this:

    Customer someFunc(the customer) { ... }

and have it mean:

    Customer someFunc(Customer customer) { ... }

Basically, an operator to take care of the common case where the variable
name is just the lower-camel-case form of the type. As a Racket fan, I
wanted to see if I could do this with a macro in Typed Racket. After some
mucking around I had a form that handled the syntax correctly, but I
couldn't use it in typed racket because the type checker and type
annotations run as macros *before* my macro expands. As I read further, it
seems to be the case that macros in typed racket are a very thorny problem
and an area of open research. So is it currently possible to implement a
"the" operator like the one shown above in typed racket? And if so, how
would it be done?
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.racket-lang.org/users/archive/attachments/20141007/6c5198b8/attachment.html>

Posted on the users mailing list.