From afbd1f1c31299ef9e2040b41fce7a8546fce618d Mon Sep 17 00:00:00 2001 From: Andrey Listopadov Date: Mon, 15 Mar 2021 19:12:02 +0300 Subject: fix: update test suite eq function builder This really means that I need to externalize it into separate module and just use everywhere, but Fennel doesn't yet feature stable way to do it unfortunately --- macros.fnl | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) (limited to 'macros.fnl') diff --git a/macros.fnl b/macros.fnl index ca31d58..c7a42b9 100644 --- a/macros.fnl +++ b/macros.fnl @@ -64,12 +64,12 @@ ;; ;; This function is able to compare tables of any depth, even if one of ;; the tables uses tables as keys. - `(fn eq# [left# right#] - (if (= left# right#) + `(fn eq# [x# y#] + (if (= x# y#) true - (and (= (type left#) :table) (= (type right#) :table)) - (do (var [res# count-a# count-b#] [true 0 0]) - (each [k# v# (pairs left#)] + (and (= (type x#) :table) (= (type y#) :table)) + (do (var [res# count-x# count-y#] [true 0 0]) + (each [k# v# (pairs x#)] (set res# (eq# v# ((fn deep-index# [tbl# key#] (var res# nil) (each [k# v# (pairs tbl#)] @@ -77,14 +77,14 @@ (set res# v#) (lua :break))) res#) - right# k#))) - (set count-a# (+ count-a# 1)) + y# k#))) + (set count-x# (+ count-x# 1)) (when (not res#) (lua :break))) (when res# - (each [_# _# (pairs right#)] - (set count-b# (+ count-b# 1))) - (set res# (= count-a# count-b#))) + (each [_# _# (pairs y#)] + (set count-y# (+ count-y# 1))) + (set res# (= count-x# count-y#))) res#) :else false))) -- cgit v1.2.3