From f9fb932e6c1f5b916162fb5a50907a1fada646f3 Mon Sep 17 00:00:00 2001 From: Archenoth Date: Tue, 13 Jul 2021 05:42:37 +0000 Subject: feat(macros): Added Clojure-like loop macro --- tests/macros.fnl | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) (limited to 'tests') diff --git a/tests/macros.fnl b/tests/macros.fnl index bef0390..cf5c09b 100644 --- a/tests/macros.fnl +++ b/tests/macros.fnl @@ -247,3 +247,21 @@ (assert-eq 3 (select :# (try (values 1 2 3)))) (assert-eq [1 2 3] [(try (values 1 2 3))]) (assert-eq 6 (select :# (try (values 1 nil 3 nil nil nil)))))) + +(deftest loop + (testing "loop macro" + (assert-eq + (loop [[first & rest] [1 2 3 4 5] + acc 0] + (if (= nil first) + acc + (recur rest (+ acc first)))) + 15) + + (assert-eq + (loop [a 2 + b (+ a 3)] + (if (= b 5) + (recur a (+ 1 b)) + b)) + 6))) -- cgit v1.2.3