diff --git a/src/boot/boot.janet b/src/boot/boot.janet index 5e396cff..ce117b4f 100644 --- a/src/boot/boot.janet +++ b/src/boot/boot.janet @@ -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 diff --git a/test/suite-boot.janet b/test/suite-boot.janet index c24d4c50..07543a20 100644 --- a/test/suite-boot.janet +++ b/test/suite-boot.janet @@ -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)