add as-> macro

This commit is contained in:
Matthew Egan Odendahl 2016-04-15 20:33:42 -06:00
parent d91dbd19f8
commit 7e13bb4e5f

View File

@ -30,6 +30,15 @@
[hy.models.symbol [HySymbol]]
[hy._compat [PY33 PY34]])
(defmacro as-> [head name &rest rest]
"Becomes ordered assignments to the provided name. The previous result
is thus available in each form. Returns the final result, and leaves the name
bound to it in the local scope. This behaves like the threading macros, but
requires you to specify the threading point per form via the name."
`(do (setv
~name ~head
~@(interleave (repeat name) rest))
~name))
(defmacro with [args &rest body]
"shorthand for nested with* loops: