More convenient sort function

This commit is contained in:
2020-12-11 21:35:59 -07:00
parent c7c2fb4709
commit 408e6745ef
2 changed files with 9 additions and 0 deletions

View File

@@ -44,6 +44,7 @@ class Kiss {
// Helpful aliases
k.defAlias("print", Symbol("Prelude.print"));
k.defAlias("sort", Symbol("Prelude.sort"));
k.defAlias("groups", Symbol("Prelude.groups"));
k.defAlias("zip", Symbol("Prelude.zip"));
k.defAlias("pairs", Symbol("Prelude.pairs")); // TODO test pairs

View File

@@ -137,6 +137,14 @@ class Prelude {
public static var areEqual = variadic(_areEqual, true);
public static function sort<T>(a:Array<T>, ?comp:(T, T) -> Int):kiss.List<T> {
if (comp == null)
comp = Reflect.compare;
var sorted = a.copy();
sorted.sort(comp);
return sorted;
}
public static function groups<T>(a:Array<T>, size, extraHandling = Drop) {
var numFullGroups = Math.floor(a.length / size);
var fullGroups = [