Skip to content

Instantly share code, notes, and snippets.

@gosukiwi
Created December 5, 2015 03:43
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 gosukiwi/1584bf0b7be5e14be1b3 to your computer and use it in GitHub Desktop.
Save gosukiwi/1584bf0b7be5e14be1b3 to your computer and use it in GitHub Desktop.
(define-syntax hash
(er-macro-transformer
(lambda (expr r c) ; expression rename compare
(let ((body (cdr expr)))
;; code-expansion, self-executable lambda
`(((lambda ()
(let ((table make-strong-eq-hash-table))
,(let loop
((pairs body))
(if (> (length pairs) 2)
(cons '(hash-table/put! table ,(car pairs) ,(cdar pairs)) loop(cddr pairs))
'()))
table))))))))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment