Skip to content

Instantly share code, notes, and snippets.

@zeptometer
Last active August 29, 2015 14:13
Show Gist options
  • Select an option

  • Save zeptometer/620e54e0b0e912a1b9b4 to your computer and use it in GitHub Desktop.

Select an option

Save zeptometer/620e54e0b0e912a1b9b4 to your computer and use it in GitHub Desktop.
(import (scheme base)
(scheme write))
(define-syntax foo
(syntax-rules (hoge)
((_ hoge)
(write "You got"))
((_ bar)
(write 'bar))))
(define-syntax hoo
(er-macro-transformer
(lambda (form r cmp)
(if (cmp (r 'hoge) (cadr form))
`(,(r 'write) "you got")
`(,(r 'write) ',(cadr form))))))
(define-syntax goo
(er-macro-transformer
(lambda (form r cmp)
(if (cmp 'hoge (r (cadr form)))
`(,(r 'write) "you got")
`(,(r 'write) ',(cadr form))))))
(foo hoge) ; should display "You got", but got "hoge"
(hoo hoge) ; got "hoge", should display "You got"?
(goo hoge) ; got "hoge"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment