From 408e6745effe28c348e2e00220fe8fe83f578e13 Mon Sep 17 00:00:00 2001 From: Nat Quayle Nelson Date: Fri, 11 Dec 2020 21:35:59 -0700 Subject: [PATCH] More convenient sort function --- src/kiss/Kiss.hx | 1 + src/kiss/Prelude.hx | 8 ++++++++ 2 files changed, 9 insertions(+) diff --git a/src/kiss/Kiss.hx b/src/kiss/Kiss.hx index d432ac5..ecc14f6 100644 --- a/src/kiss/Kiss.hx +++ b/src/kiss/Kiss.hx @@ -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 diff --git a/src/kiss/Prelude.hx b/src/kiss/Prelude.hx index 304d1d4..519bb75 100644 --- a/src/kiss/Prelude.hx +++ b/src/kiss/Prelude.hx @@ -137,6 +137,14 @@ class Prelude { public static var areEqual = variadic(_areEqual, true); + public static function sort(a:Array, ?comp:(T, T) -> Int):kiss.List { + if (comp == null) + comp = Reflect.compare; + var sorted = a.copy(); + sorted.sort(comp); + return sorted; + } + public static function groups(a:Array, size, extraHandling = Drop) { var numFullGroups = Math.floor(a.length / size); var fullGroups = [