Simplify frequencies implementation (#1793)

* Add tests for frequencies

* Simplify frequencies implementation

---------

Co-authored-by: sogaiu <983021772@users.noreply.github.com>
This commit is contained in:
sogaiuandsogaiu authored and GitHub committed 2026-08-08 09:30:20 -05:00
1 parent f362e8f0fa
commit 331e8544bc
2 files changed
+9 -2

No files matched your search

+1 -2
View File
@@ -1764,8 +1764,7 @@
[ind]
(def freqs @{})
(each x ind
(def n (in freqs x))
(set (freqs x) (if n (+ 1 n) 1)))
(put freqs x (inc (in freqs x 0))))
freqs)
(defn group-by
+8
View File
@@ -1032,4 +1032,12 @@
# regression test for #1659
(assert (= (try (error :error) ([_ _] :caught)) :caught))
# frequencies
(assert (deep= (frequencies :lol) @{108 2 111 1}))
(assert (deep= (frequencies [:duck :duck :duck :goose]) @{:duck 3 :goose 1}))
(assert (deep= (frequencies {1 :a 2 :x 3 :x 8 :a}) @{:a 2 :x 2}))
(assert (deep= (frequencies @{}) @{}))
(assert (deep= (frequencies (coro (yield 1) (yield 8) (yield 2) (yield 8)))
@{1 1 2 1 8 2}))
(end-suite)