Use builtins.partition if available

This commit is contained in:
Eelco Dolstra 2016-08-29 17:25:33 +02:00
parent 67c57a9ce5
commit 822e1ddd89

View File

@ -218,12 +218,12 @@ rec {
partition (x: x > 2) [ 5 1 2 3 4 ] partition (x: x > 2) [ 5 1 2 3 4 ]
=> { right = [ 5 3 4 ]; wrong = [ 1 2 ]; } => { right = [ 5 3 4 ]; wrong = [ 1 2 ]; }
*/ */
partition = pred: partition = builtins.partition or (pred:
fold (h: t: fold (h: t:
if pred h if pred h
then { right = [h] ++ t.right; wrong = t.wrong; } then { right = [h] ++ t.right; wrong = t.wrong; }
else { right = t.right; wrong = [h] ++ t.wrong; } else { right = t.right; wrong = [h] ++ t.wrong; }
) { right = []; wrong = []; }; ) { right = []; wrong = []; });
/* Merges two lists of the same size together. If the sizes aren't the same /* Merges two lists of the same size together. If the sizes aren't the same
the merging stops at the shortest. How both lists are merged is defined the merging stops at the shortest. How both lists are merged is defined