diff options
Diffstat (limited to 'stdlib/source/lux/data/collection/dictionary/ordered.lux')
-rw-r--r-- | stdlib/source/lux/data/collection/dictionary/ordered.lux | 23 |
1 files changed, 9 insertions, 14 deletions
diff --git a/stdlib/source/lux/data/collection/dictionary/ordered.lux b/stdlib/source/lux/data/collection/dictionary/ordered.lux index c558a7669..49886a459 100644 --- a/stdlib/source/lux/data/collection/dictionary/ordered.lux +++ b/stdlib/source/lux/data/collection/dictionary/ordered.lux @@ -115,21 +115,16 @@ [max #right] ) -(template [<name> <op>] - [(def: #export (<name> dict) - (All [k v] (-> (Dictionary k v) Nat)) - (loop [node (get@ #root dict)] - (case node - #.None - 0 - - (#.Some node) - (inc (<op> (recur (get@ #left node)) - (recur (get@ #right node)))))))] +(def: #export (size dict) + (All [k v] (-> (Dictionary k v) Nat)) + (loop [node (get@ #root dict)] + (case node + #.None + 0 - [size n.+] - [depth n.max] - ) + (#.Some node) + (inc (n.+ (recur (get@ #left node)) + (recur (get@ #right node))))))) (def: #export empty? (All [k v] (-> (Dictionary k v) Bit)) |