lib: lists: add countValues
This commit is contained in:
parent
4f742b69f2
commit
b97eff2479
|
@ -1,8 +1,22 @@
|
||||||
{ lib, ... }:
|
{ lib, ... }:
|
||||||
let
|
let
|
||||||
inherit (lib) filter;
|
inherit (lib) filter foldl';
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
|
# Count the number of appararitions of each value in a list.
|
||||||
|
#
|
||||||
|
# countValues ::
|
||||||
|
# [ any ] -> ({ any = int; })
|
||||||
|
countValues =
|
||||||
|
let
|
||||||
|
addToCount = acc: x:
|
||||||
|
let
|
||||||
|
v = toString x;
|
||||||
|
in
|
||||||
|
acc // { ${v} = (acc.${v} or 0) + 1; };
|
||||||
|
in
|
||||||
|
foldl' addToCount { };
|
||||||
|
|
||||||
# Filter a list using a predicate function after applying a map.
|
# Filter a list using a predicate function after applying a map.
|
||||||
#
|
#
|
||||||
# mapFilter ::
|
# mapFilter ::
|
||||||
|
|
Loading…
Reference in a new issue