Skip to content

Instantly share code, notes, and snippets.

@zeptometer
Created February 12, 2014 04:52
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 zeptometer/8950247 to your computer and use it in GitHub Desktop.
Save zeptometer/8950247 to your computer and use it in GitHub Desktop.
(define-syntax aif
(sc-macro-transformer
(lambda (form env)
`(let ((it ,(make-sc env '() pred)))
(aif* ,@(cddr form))))))
(define-syntax aif*
(sc-macro-transformer
(lambda (form env)
(let ((then (cadr form))
(else (if (null? (cddr form)))
#f
(caddr form) ))
`(if ,(make-sc env '() 'it)
,(make-sc env '() then)
,(make-sc env '() else))))))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment