From 8d4ea9dfba4b7838d3ebddf9b8b972745b168b77 Mon Sep 17 00:00:00 2001 From: "Kartik K. Agaram" Date: Thu, 25 Aug 2011 21:55:38 -0700 Subject: [PATCH] fix another long-standing gotcha: destructuring in whilet --- arc.arc | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/arc.arc b/arc.arc index 4d391428f..92a9c7789 100644 --- a/arc.arc +++ b/arc.arc @@ -550,13 +550,6 @@ (= (s2 i) (seq (+ start i)))) s2) (firstn (- end start) (nthcdr start seq))))) - -(mac whilet (var test . body) - (w/uniq (gf gp) - `((rfn ,gf (,gp) - (let ,var ,gp - (when ,var ,@body (,gf ,test)))) - ,test))) (def last (xs) (if (cdr xs) @@ -746,6 +739,14 @@ (mac awhen (expr . body) `(let it ,expr (if it (do ,@body)))) +(mac whilet (var test . body) + (w/uniq (gf gp) + `((rfn ,gf (,gp) + (whenlet ,var ,gp + ,@body + (,gf ,test))) + ,test))) + (mac aand args (if (no args) 't