count: init
This commit is contained in:
@@ -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;
|
||||
|
||||
14
src/count.nix
Normal file
14
src/count.nix
Normal file
@@ -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;
|
||||
}
|
||||
Reference in New Issue
Block a user