Hello,

I have been trying to write  a macro to allow me to omit some parentheses in 
complicated expressions with many complicated sub-expressions in the tail 
position. 

(I want the dollar sign to work exactly as it does in Haskell)

I want to be able to write 

> (map (lambda (str) (string-append "Hello, " str)) $ string-titlecase $ list 
> "Alice "Bob" "Eve")

and have it expand to

> (map (lambda (str) (string-append "Hello, " str)) (string-titlecase (list 
> "Alice "Bob" "Eve")))

My most recent attempt at this macro is 
 


> (define-syntax $
>   (lambda (stx)
>     (syntax-case stx ()
>       [(before ... $ after ...) 
>        #'(before bs ... (after as...))])))


but this does not work, as I cannot have multiple ellipses in the pattern I 
match against in syntax-case. 

I assume it is possible to write such a macro in Racket, but I am at a loss as 
to how.

Can anyone point me in the right direction, please? 

Thanks,
-Spencer Gordon



____________________
  Racket Users list:
  http://lists.racket-lang.org/users

Reply via email to