PasteRack.org
Paste # 10639
2014-12-18 06:36:10

Fork as a new paste.

Paste viewed 538 times.


Embed:

Macro pattern matching using with-syntax (for Alestan)

  1. #lang racket
  2. (with-syntax (((_ tag ((var val) ...) body ...)        ; pattern
  3.                #'(let loop ((var1 val1) (var2 val2))   ; input
  4.                    (+ var1 var2))))
  5.   (syntax->datum #'((tag: tag) (vars: var ...) (vals: val ...) (body: body ...))))

=>

'((tag: loop) (vars: var1 var2) (vals: val1 val2) (body: (+ var1 var2)))