From 6f2059607b75f9bc7e1dee3e0a26d49f3e389e93 Mon Sep 17 00:00:00 2001 From: h7x4 Date: Tue, 8 Apr 2025 16:11:18 +0200 Subject: [PATCH] count: init --- flake.nix | 1 + src/count.nix | 14 ++++++++++++++ 2 files changed, 15 insertions(+) create mode 100644 src/count.nix diff --git a/flake.nix b/flake.nix index 8ea6191..6d32582 100644 --- a/flake.nix +++ b/flake.nix @@ -11,6 +11,7 @@ inherit util; collect = import ./src/collect.nix lib; + count = import ./src/count.nix lib; filterAttrs = import ./src/filterAttrs.nix lib; filterOverrides = import ./src/filterOverrides.nix lib; findFirstIndex = import ./src/findFirstIndex.nix lib; diff --git a/src/count.nix b/src/count.nix new file mode 100644 index 0000000..e8e8864 --- /dev/null +++ b/src/count.nix @@ -0,0 +1,14 @@ +lib: +let + countOld = pred: builtins.foldl' (c: x: if pred x then c + 1 else c) 0; + + countNew = pred: list: builtins.length (builtins.partition pred list).right; + + countNewNew = pred: list: builtins.length (builtins.filter pred list); + + bigdata = lib.imap0 (i: _: i + 1) (lib.replicate 999999 null); +in { + old = countOld (x: (lib.mod 10 x) == 0) bigdata; + new = countNew (x: (lib.mod 10 x) == 0) bigdata; + newNew = countNewNew (x: (lib.mod 10 x) == 0) bigdata; +}