aboutsummaryrefslogtreecommitdiff
path: root/builtins/array.c
diff options
context:
space:
mode:
authorBruce Hill <bruce@bruce-hill.com>2024-04-02 13:13:33 -0400
committerBruce Hill <bruce@bruce-hill.com>2024-04-02 13:13:33 -0400
commit95100469b6c7f301bb14bcda5dbc16b93c9ce0dc (patch)
treef84837f45fdc90b3070bd17583329a89450f6f44 /builtins/array.c
parentc73e96ff916209d74e2be9bd7d8de3758685ce4d (diff)
Add array:sorted()
Diffstat (limited to 'builtins/array.c')
-rw-r--r--builtins/array.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/builtins/array.c b/builtins/array.c
index 84b65ae7..4eea25fb 100644
--- a/builtins/array.c
+++ b/builtins/array.c
@@ -151,6 +151,13 @@ public void Array$sort(array_t *arr, closure_t comparison, const TypeInfo *type)
qsort_r(arr->data, arr->length, item_size, comparison.fn, comparison.userdata);
}
+public array_t Array$sorted(array_t arr, closure_t comparison, const TypeInfo *type)
+{
+ arr.data_refcount = 3;
+ Array$sort(&arr, comparison, type);
+ return arr;
+}
+
public void Array$shuffle(array_t *arr, const TypeInfo *type)
{
int64_t item_size = get_item_size(type);