Skip to content

Instantly share code, notes, and snippets.

@ato
Created November 17, 2009 02:35
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save ato/236571 to your computer and use it in GitHub Desktop.
Save ato/236571 to your computer and use it in GitHub Desktop.
(defmacro sender [name freq iface ufun]
`(proxy [EchoSender] [~name ~freq ~iface]
(send [o#] dorun (. o# (first ~ufun) (second ~ufun)))))
(sender "moje" 500 MyMessage '(message "Hello World"))
;; Currently expands to:
(proxy
[EchoSender]
["moje" 500 MyMessage]
(send
[o__4233__auto__]
dorun
(. o__4233__auto__
(first '(message "Hello World"))
(second '(message "Hello World")))))
;; But if we do
(defmacro sender [name freq iface ufun]
`(proxy [EchoSender] [~name ~freq ~iface]
(send [o#] dorun (. o# ~(first ufun) ~(second ufun)))))
(sender "moje" 500 MyMessage (message "Hello World"))
;; Then we get
(proxy
[EchoSender]
["moje" 500 MyMessage]
(send
[o__4615__auto__]
dorun
(. o__4615__auto__ message "Hello World")))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment