Skip to content

Instantly share code, notes, and snippets.

@radgeRayden
Last active October 1, 2020 15: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 radgeRayden/71e396959a202a8ae418e7ad5199487a to your computer and use it in GitHub Desktop.
Save radgeRayden/71e396959a202a8ae418e7ad5199487a to your computer and use it in GitHub Desktop.
sugar let (bindings body...)
let bindings =
fold (result = '(embed)) for binding in (bindings as list)
sugar-match (binding as list)
case (name expr)
cons
qq [let] [name] = [expr]
result
default
error "invalid let syntax"
qq
[do]
[('reverse bindings)]
unquote-splice body...
run-stage;
(print
(let
((a 2)
(b 3)
(c (+ a 1)))
(print a b c)
(+ a b c)))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment