diff options
| author | Andrey Listopadov <andreyorst@gmail.com> | 2021-03-15 19:12:02 +0300 |
|---|---|---|
| committer | Andrey Listopadov <andreyorst@gmail.com> | 2021-03-15 19:12:02 +0300 |
| commit | afbd1f1c31299ef9e2040b41fce7a8546fce618d (patch) | |
| tree | 7d3afbb12a606c0b4a3855cfbd6ea41adbcbcac7 /macros.fnl | |
| parent | 49d4cdcaedb4da26cf40a22f5bb8c1d6f5341c23 (diff) | |
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
Diffstat (limited to 'macros.fnl')
| -rw-r--r-- | macros.fnl | 20 |
1 files changed, 10 insertions, 10 deletions
@@ -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))) |