aboutsummaryrefslogtreecommitdiff
path: root/stdlib/source/library/lux.lux
diff options
context:
space:
mode:
authorEduardo Julian2022-03-30 14:05:57 -0400
committerEduardo Julian2022-03-30 14:05:57 -0400
commit381ec5920d9ebeb335963778dec182268819e718 (patch)
tree5c9288c5fbb16c21a0f00f96710b0aa7db4585f4 /stdlib/source/library/lux.lux
parent1a962ee4b03f51f46a5979bfefc954f35ee3a1b7 (diff)
Now demanding mandatory loop names, instead of using default "again" name.
Diffstat (limited to 'stdlib/source/library/lux.lux')
-rw-r--r--stdlib/source/library/lux.lux16
1 files changed, 6 insertions, 10 deletions
diff --git a/stdlib/source/library/lux.lux b/stdlib/source/library/lux.lux
index 67f2dc4d3..da0e84a92 100644
--- a/stdlib/source/library/lux.lux
+++ b/stdlib/source/library/lux.lux
@@ -4449,11 +4449,8 @@
(macro: .public (loop tokens)
(let [?params (case tokens
- (pattern (list name [_ {#Tuple bindings}] body))
+ (pattern (list [_ {#Form (list name [_ {#Tuple bindings}])}] body))
{#Some [name bindings body]}
-
- (pattern (list [_ {#Tuple bindings}] body))
- {#Some [(local$ "again") bindings body]}
_
{#None})]
@@ -4482,9 +4479,8 @@
(is (-> Code (Meta Code))
(function (_ _) (..generated_symbol "")))
inits)]
- (meta#in (list (` (let [(~+ (..interleaved aliases inits))]
- (.loop (~ name)
- [(~+ (..interleaved vars aliases))]
+ (meta#in (list (` (..let [(~+ (..interleaved aliases inits))]
+ (..loop ((~ name) [(~+ (..interleaved vars aliases))])
(~ body)))))))))
{#None}
@@ -4515,9 +4511,9 @@
(macro: .public (with_expansions tokens)
(case (parsed (andP (tupleP (someP bindingP)) (someP anyP)) tokens)
{#Some [bindings bodies]}
- (loop [bindings bindings
- map (is (PList (List Code))
- (list))]
+ (loop (again [bindings bindings
+ map (is (PList (List Code))
+ (list))])
(let [normal (is (-> Code (List Code))
(function (_ it)
(list#mix (function (_ [binding expansion] it)