diff --git a/core/core.mal b/core/core.mal index b88fec2..ac47694 100644 --- a/core/core.mal +++ b/core/core.mal @@ -161,11 +161,9 @@ (def! filter-r (fn* [l p] (if (empty? l) p - (do - (def! t (car l)) - (if (f t) - (filter-r (cdr l) (cons t p)) - (filter-r (cdr l) p)))))) + (if (f (def! t (car l))) + (filter-r (cdr l) (cons t p)) + (filter-r (cdr l) p))))) (reverse (filter-r l '())))) (def! map-if (fn* [c f l] diff --git a/libs/lists.mal b/libs/lists.mal index 06a6e61..c48a3a7 100644 --- a/libs/lists.mal +++ b/libs/lists.mal @@ -13,10 +13,3 @@ (let* [c (car n) n (cdr n)] (distribute-r (cons c p) n (cons (cons c (concat p n)) t)))))) (distribute-r '() x '()))) - -(def! len (fn* [l] (def! len-r (fn* [l c] - (if (empty? l) - c - (len-r (cdr l) (+ c 1))))) - (len-r l 0))) -