lib: lists: add countValues

This commit is contained in:
Bruno BELANYI 2021-08-24 22:26:06 +02:00
parent 4f742b69f2
commit b97eff2479

View file

@ -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 ::