Qore Programming Language Reference Manual  1.1.0
List Functions

## Functions

bool Qore::inlist ()
This function variant does nothing at all. More...

bool Qore::inlist (any arg, nothing x)
This function variant does nothing at all. More...

bool Qore::inlist (auto arg, softlist< auto > l)
Returns True if the first argument is a member of the second argument list using soft comparisons (with implicit type conversions), False if not. More...

bool Qore::inlist_hard ()
This function variant does nothing at all. More...

bool Qore::inlist_hard (any arg, nothing x)
This function variant does nothing at all. More...

bool Qore::inlist_hard (auto arg, softlist< auto > l)
Returns True if the first argument is a member of the second argument list using hard comparisons (without any implicit type conversions), False if not. More...

auto Qore::max (list< auto > l)
Returns the maximum value in a list. More...

auto Qore::max (list< auto > l, string func)
Returns the maximum value in a list. More...

auto Qore::max (list< auto > l, code f)
Returns the maximum value in a list. More...

auto Qore::max (...)
Returns the maximum value of the arguments passed to the function. More...

auto Qore::min (list< auto > l)
Returns the minumum value in a list. More...

auto Qore::min (list< auto > l, string func)
Returns the minumum value in a list. More...

auto Qore::min (list< auto > l, code f)
Returns the minumum value in a list. More...

auto Qore::min (...)
Returns the minumum value of the arguments passed to the function. More...

list< intQore::range (int start, int stop, int step=1)
Returns a list containing an arithmetic progression of integers. More...

list< intQore::range (int stop)
Returns a list containing an arithmetic progression of integers with start = 0 and step = 1. More...

nothing Qore::reverse ()
This function variant does nothing at all. More...

list< auto > Qore::reverse (list< auto > l)
Reverses a list and returns the new list. More...

auto Qore::sort (auto arg)
This function variant does nothing at all. More...

list< auto > Qore::sort (list< auto > l)
Performs an unstable sort in ascending order and returns the new list. More...

list< auto > Qore::sort (list< auto > l, string func)
Performs an unstable sort in ascending order and returns the new list. More...

list< auto > Qore::sort (list< auto > l, code f)
Performs an unstable sort in ascending order and returns the new list. More...

auto Qore::sortDescending (auto arg)
This function variant does nothing at all. More...

list< auto > Qore::sortDescending (list< auto > l)
Performs an unstable sort in descending order and returns the new list. More...

list< auto > Qore::sortDescending (list< auto > l, string func)
Performs an unstable sort in descending order and returns the new list. More...

list< auto > Qore::sortDescending (list< auto > l, code f)
Performs an unstable sort in descending order and returns the new list. More...

auto Qore::sortDescendingStable (auto arg)
This function variant does nothing at all. More...

list< auto > Qore::sortDescendingStable (list< auto > l)
Performs a stable sort in descending order and returns the new list. More...

list< auto > Qore::sortDescendingStable (list< auto > l, string func)
Performs a stable sort in descending order and returns the new list. More...

list< auto > Qore::sortDescendingStable (list< auto > l, code f)
Performs a stable sort in descending order and returns the new list. More...

auto Qore::sortStable (auto arg)
This function variant does nothing at all. More...

list< auto > Qore::sortStable (list< auto > l)
Performs a stable sort in ascending order and returns the new list. More...

list< auto > Qore::sortStable (list< auto > l, string func)
Performs a stable sort in ascending order and returns the new list. More...

list< auto > Qore::sortStable (list< auto > l, code f)
Performs a stable sort in ascending order and returns the new list. More...

auto Qore::sort_descending (auto arg)
This function variant does nothing at all. More...

list< auto > Qore::sort_descending (list< auto > l)
Performs an unstable sort in descending order and returns the new list. More...

list< auto > Qore::sort_descending (list< auto > l, string func)
Performs an unstable sort in descending order and returns the new list. More...

list< auto > Qore::sort_descending (list< auto > l, code f)
Performs an unstable sort in descending order and returns the new list. More...

auto Qore::sort_descending_stable (auto arg)
This function variant does nothing at all. More...

list< auto > Qore::sort_descending_stable (list< auto > l)
Performs a stable sort in descending order and returns the new list. More...

list< auto > Qore::sort_descending_stable (list< auto > l, string func)
Performs a stable sort in descending order and returns the new list. More...

list< auto > Qore::sort_descending_stable (list< auto > l, code f)
Performs a stable sort in descending order and returns the new list. More...

auto Qore::sort_stable (auto arg)
This function variant does nothing at all. More...

list< auto > Qore::sort_stable (list< auto > l)
Performs a stable sort in ascending order and returns the new list. More...

list< auto > Qore::sort_stable (list< auto > l, string func)
Performs a stable sort in ascending order and returns the new list. More...

list< auto > Qore::sort_stable (list< auto > l, code f)
Performs a stable sort in ascending order and returns the new list. More...

List functions

## ◆ inlist() [1/3]

 bool Qore::inlist ( )

This function variant does nothing at all.

Code Flags:
NOOP

It is only included for backwards-compatibility with qore prior to version 0.8.0 for functions that would ignore type errors in arguments

## ◆ inlist() [2/3]

 bool Qore::inlist ( any arg, nothing x )

This function variant does nothing at all.

Code Flags:
NOOP

It is only included for backwards-compatibility with qore prior to version 0.8.0 for functions that would ignore type errors in arguments

## ◆ inlist() [3/3]

 bool Qore::inlist ( auto arg, softlist< auto > l )

Returns True if the first argument is a member of the second argument list using soft comparisons (with implicit type conversions), False if not.

Code Flags:
RET_VALUE_ONLY
Example:
if (inlist(str, strlist))
printf("%y is in %y\n", str, strlist);
bool inlist()
This function variant does nothing at all.
string printf(string fmt,...)
Outputs the string passed to standard output, using the first argument as a format string; does not e...
Parameters
 arg the argument to look for in the list l the list to search for the first argument arg
Returns
True if the first argument is a member of the second argument list using soft comparisons (with implicit type conversions), False if not
inlist_hard(auto, softlist<auto>)

## ◆ inlist_hard() [1/3]

 bool Qore::inlist_hard ( )

This function variant does nothing at all.

Code Flags:
NOOP

It is only included for backwards-compatibility with qore prior to version 0.8.0 for functions that would ignore type errors in arguments

## ◆ inlist_hard() [2/3]

 bool Qore::inlist_hard ( any arg, nothing x )

This function variant does nothing at all.

Code Flags:
NOOP

It is only included for backwards-compatibility with qore prior to version 0.8.0 for functions that would ignore type errors in arguments

## ◆ inlist_hard() [3/3]

 bool Qore::inlist_hard ( auto arg, softlist< auto > l )

Returns True if the first argument is a member of the second argument list using hard comparisons (without any implicit type conversions), False if not.

Code Flags:
RET_VALUE_ONLY
Example:
if (inlist_hard(str, strlist))
printf("%y is in %y\n", str, strlist);
bool inlist_hard()
This function variant does nothing at all.
Parameters
 arg the argument to look for in the list l the list to search for the first argument arg
Returns
True if the first argument is a member of the second argument list using hard comparisons (without any implicit type conversions), False if not
inlist(auto, softlist<auto>)

## ◆ max() [1/4]

 auto Qore::max ( ... )

Returns the maximum value of the arguments passed to the function.

This variant will only work on basic data types

Code Flags:
CONSTANT
Example:
auto v = max(v1, v2, v3);
auto max(list< auto > l)
Returns the maximum value in a list.
Parameters
 ... the list of values to process given directly to the function
Returns
the maximum value in a list
min(...)

## ◆ max() [2/4]

 auto Qore::max ( list< auto > l )

Returns the maximum value in a list.

This variant will only work on basic data types

Code Flags:
CONSTANT
Example:
auto v = max(l);
Parameters
 l the list to process
Returns
the maximum value in a list
min(list)

## ◆ max() [3/4]

 auto Qore::max ( list< auto > l, code f )

Returns the maximum value in a list.

Accepts a call reference or a closure to use to compare complex data types or to give a special sort order

Code Flags:
RET_VALUE_ONLY
Example:
code sort_func = int sub (hash l, hash r) { return l.id <=> r.id; };
auto v = max(l, sort_func);
Parameters
 l the list to sort f a call reference or a closure that accepts 2 arguments of the data type in the list; the call reference or a closure must return -1, 0, or 1 if the first is less than the second, if the first and second are equal, or if the first is greater than the second, respectively
Returns
the maximum value in a list
min(list, code)

## ◆ max() [4/4]

 auto Qore::max ( list< auto > l, string func )

Returns the maximum value in a list.

Accepts the name of a function to use to compare complex data types or to give a special sort order

Code Flags:
RET_VALUE_ONLY
Example:
auto v = max(l, "my_sort_function");
Parameters
 l the list to sort func the name of a function accessible in the current scope that accepts 2 arguments of the data type in the list; the function must return -1, 0, or 1 if the first is less than the second, if the first and second are equal, or if the first is greater than the second, respectively
Returns
the maximum value in a list
min(list, string)

## ◆ min() [1/4]

 auto Qore::min ( ... )

Returns the minumum value of the arguments passed to the function.

This variant will only work on basic data types

Code Flags:
CONSTANT
Example:
auto v = min(v1, v2, v3);
auto min(list< auto > l)
Returns the minumum value in a list.
Parameters
 ... the list of values to process given directly to the function
Returns
the minumum value in a list
max(...)

## ◆ min() [2/4]

 auto Qore::min ( list< auto > l )

Returns the minumum value in a list.

This variant will only work on basic data types

Code Flags:
CONSTANT
Example:
auto v = min(l);
Parameters
 l the list to process
Returns
the minumum value in a list
max(list)

## ◆ min() [3/4]

 auto Qore::min ( list< auto > l, code f )

Returns the minumum value in a list.

Accepts a call reference or a closure to use to compare complex data types or to give a special sort order

Code Flags:
RET_VALUE_ONLY
Example:
code sort_func = int sub (hash l, hash r) { return l.id <=> r.id; };
auto v = min(l, sort_func);
Parameters
 l the list to sort f a call reference or a closure that accepts 2 arguments of the data type in the list; the call reference or a closure must return -1, 0, or 1 if the first is less than the second, if the first and second are equal, or if the first is greater than the second, respectively
Returns
the minumum value in a list
max(list, code)

## ◆ min() [4/4]

 auto Qore::min ( list< auto > l, string func )

Returns the minumum value in a list.

Accepts the name of a function to use to compare complex data types or to give a special sort order

Code Flags:
RET_VALUE_ONLY
Example:
auto v = min(l, "my_sort_function");
Parameters
 l the list to sort func the name of a function accessible in the current scope that accepts 2 arguments of the data type in the list; the function must return -1, 0, or 1 if the first is less than the second, if the first and second are equal, or if the first is greater than the second, respectively
Returns
the minumum value in a list
max(list, string)

## ◆ range() [1/2]

 list Qore::range ( int start, int stop, int step = `1` )

Returns a list containing an arithmetic progression of integers.

Code Flags:
RET_VALUE_ONLY
Example:
range(2, 5); # (2, 3, 4, 5)
range(2, -2); # (2, 1, 0, -1, -2)
range(1, 10, 5); # (1, 6)
range(0, 10, 5); # (0, 5, 10)
range(-10, 10, 5); # (-10, -5, 0, 5, 10)
range(10, -10, 5); # (10, 5, 0, -5, -10)
list< int > range(int start, int stop, int step=1)
Returns a list containing an arithmetic progression of integers.
Parameters
 start the initial value stop the upper limit step the step; the default is 1; must be greater than 0; the function throws a `RANGE-ERROR` exception when this argument is < 1
Returns
Returns a list containing an arithmetic progression of integers.
Exceptions
 RANGE-ERROR this exception is thrown if `step` < 1
xrange
Note
the main difference between range() and xrange() is that range returns real list and xrange returns a RangeIterator
Since
• Qore 0.8.6
• Qore 0.9.5 does not include the upper limit in the range unless %broken-range is set

## ◆ range() [2/2]

 list Qore::range ( int stop )

Returns a list containing an arithmetic progression of integers with start = 0 and step = 1.

This is an overloaded version of range(int, int, int) meaning `range`(0, `stop`, 1)

Code Flags:
CONSTANT
Example:
range(1); # (0, 1)
range(-3); # (0, -1, -2, -3)
Parameters
 stop the final value
Returns
Returns a list containing an arithmetic progression of integers with start = 0 and step = 1.
xrange
Note
the main difference between range() and xrange() is that range returns real list and xrange returns a RangeIterator
Since
• Qore 0.8.6
• Qore 0.9.5 does not include the upper limit in the range unless %broken-range is set

## ◆ reverse() [1/2]

 nothing Qore::reverse ( )

This function variant does nothing at all.

Code Flags:
NOOP

It is only included for backwards-compatibility with qore prior to version 0.8.0 for functions that would ignore type errors in arguments

## ◆ reverse() [2/2]

 list Qore::reverse ( list< auto > l )

Reverses a list and returns the new list.

Code Flags:
CONSTANT
Example:
list<auto> nl = reverse(l);
string reverse(softstring str)
Reverses a string and returns the new string.
Parameters
 l the list to reverse
Returns
the given list with all elements in reverse order
reverse(string)

## ◆ sort() [1/4]

 auto Qore::sort ( auto arg )

This function variant does nothing at all.

Code Flags:
NOOP

it is only included for backwards-compatibility with qore prior to version 0.8.0 for functions that would ignore type errors in arguments

## ◆ sort() [2/4]

 list Qore::sort ( list< auto > l )

Performs an unstable sort in ascending order and returns the new list.

This variant will only sort basic data types

Code Flags:
CONSTANT
Example:
list<auto> nl = sort(l);
auto sort(auto arg)
This function variant does nothing at all.
Parameters
 l the list to sort
Returns
the sorted list
Note
This function uses an internal recursive quicksort algorithm that uses excessive stack space with large lists, therefore when the list size is > 1000 element, mergesort is used instead, which is equivalent to sort_stable()
• sortStable(list)
• sortDescendingStable(list)
• sortDescending(list)

## ◆ sort() [3/4]

 list Qore::sort ( list< auto > l, code f )

Performs an unstable sort in ascending order and returns the new list.

Accepts a call reference or a closure to use to sort complex data types or to give a special sort order

Code Flags:
RET_VALUE_ONLY
Example:
code sort_func = int sub (hash l, hash r) { return l.id <=> r.id; };
list<auto> nl = sort(l, sort_func);
Parameters
 l the list to sort f a call reference or a closure that accepts 2 arguments of the data type in the list; the code must return -1, 0, or 1 if the first is less than the second, if the first and second are equal, or if the first is greater than the second, respectively
Returns
the sorted list
Note
This function uses an internal recursive quicksort algorithm that uses excessive stack space with large lists, therefore when the list size is > 1000 element, mergesort is used instead, which is equivalent to sort_stable()
• sortStable(list, code)
• sortDescendingStable(list, code)
• sortDescending(list, code)

## ◆ sort() [4/4]

 list Qore::sort ( list< auto > l, string func )

Performs an unstable sort in ascending order and returns the new list.

Accepts the name of a function to use to sort complex data types or to give a special sort order

Code Flags:
RET_VALUE_ONLY
Example:
list<auto> nl = sort(l, "my_sort_function");
Parameters
 l the list to sort func the name of a function accessible in the current scope that accepts 2 arguments of the data type in the list; the function must return -1, 0, or 1 if the first is less than the second, if the first and second are equal, or if the first is greater than the second, respectively
Returns
the sorted list
Note
This function uses an internal recursive quicksort algorithm that uses excessive stack space with large lists, therefore when the list size is > 1000 element, mergesort is used instead, which is equivalent to sort_stable()
• sortStable(list, string)
• sortDescendingStable(list, string)
• sortDescending(list, string)

## ◆ sort_descending() [1/4]

 auto Qore::sort_descending ( auto arg )

This function variant does nothing at all.

Code Flags:
NOOP

It is only included for backwards-compatibility with qore prior to version 0.8.0 for functions that would ignore type errors in arguments

## ◆ sort_descending() [2/4]

 list Qore::sort_descending ( list< auto > l )

Performs an unstable sort in descending order and returns the new list.

This variant will only sort basic data types

Code Flags:
CONSTANT
Example:
list<auto> nl = sort_descending(l);
auto sort_descending(auto arg)
This function variant does nothing at all.
Parameters
 l the list to sort
Returns
the sorted list
Note
This function uses an internal recursive quicksort algorithm that uses excessive stack space with large lists, therefore when the list size is > 1000 element, mergesort is used instead, which is equivalent to sort_stable()
• sort(list)
• sortDescendingStable(list)
• sortStable(list)
Since
Qore 0.8.12 as a replacement for deprecated camel-case sortDescending()

## ◆ sort_descending() [3/4]

 list Qore::sort_descending ( list< auto > l, code f )

Performs an unstable sort in descending order and returns the new list.

Accepts a call reference or a closure to use to sort complex data types or to give a special sort order

Code Flags:
RET_VALUE_ONLY
Example:
code sort_func = int sub (hash l, hash r) { return l.id <=> r.id; };
list<auto> nl = sort_descending(l, sort_func);
Parameters
 l the list to sort f a call reference or a closure that accepts 2 arguments of the data type in the list; the code must return -1, 0, or 1 if the first is less than the second, if the first and second are equal, or if the first is greater than the second, respectively
Returns
the sorted list
Note
This function uses an internal recursive quicksort algorithm that uses excessive stack space with large lists, therefore when the list size is > 1000 element, mergesort is used instead, which is equivalent to sort_stable()
• sort_stable(list, code)
• sort_descendingStable(list, code)
• sort(list, code)
Since
Qore 0.8.12 as a replacement for deprecated camel-case sortDescending()

## ◆ sort_descending() [4/4]

 list Qore::sort_descending ( list< auto > l, string func )

Performs an unstable sort in descending order and returns the new list.

Accepts the name of a function to use to sort complex data types or to give a special sort order

Code Flags:
CONSTANT
Example:
list<auto> nl = sort_descending(l, "my_sort_function");
Parameters
 l the list to sort func the name of a function accessible in the current scope that accepts 2 arguments of the data type in the list; the function must return -1, 0, or 1 if the first is less than the second, if the first and second are equal, or if the first is greater than the second, respectively
Returns
the sorted list
Note
This function uses an internal recursive quicksort algorithm that uses excessive stack space with large lists, therefore when the list size is > 1000 element, mergesort is used instead, which is equivalent to sort_stable()
• sort_stable(list, string)
• sort_descendingStable(list, string)
• sort(list, string)
Since
Qore 0.8.12 as a replacement for deprecated camel-case sortDescending()

## ◆ sort_descending_stable() [1/4]

 auto Qore::sort_descending_stable ( auto arg )

This function variant does nothing at all.

Code Flags:
NOOP

It is only included for backwards-compatibility with qore prior to version 0.8.0 for functions that would ignore type errors in arguments

## ◆ sort_descending_stable() [2/4]

 list Qore::sort_descending_stable ( list< auto > l )

Performs a stable sort in descending order and returns the new list.

This variant will only sort basic data types

Code Flags:
CONSTANT
Example:
list<auto> nl = sort_descending_stable(l);
auto sort_descending_stable(auto arg)
This function variant does nothing at all.
Parameters
 l the list to sort
Returns
the sorted list
• sort_stable(list, code)
• sort_descending_stable(list, code)
• sort(list, code)
Since
Qore 0.8.12 as a replacement for deprecated camel-case sortDescendingStable()

## ◆ sort_descending_stable() [3/4]

 list Qore::sort_descending_stable ( list< auto > l, code f )

Performs a stable sort in descending order and returns the new list.

Accepts a call reference or a closure to use to sort complex data types or to give a special sort order

Code Flags:
RET_VALUE_ONLY
Example:
code sort_func = int sub (hash l, hash r) { return l.id <=> r.id; };
list<auto> nl = sort_descending_stable(l, sort_func);
Parameters
 l the list to sort f a call reference or a closure that accepts 2 arguments of the data type in the list; the code must return -1, 0, or 1 if the first is less than the second, if the first and second are equal, or if the first is greater than the second, respectively
Returns
the sorted list
• sort_stable(list, code)
• sort_descending_stable(list, code)
• sort(list, code)
Since
Qore 0.8.12 as a replacement for deprecated camel-case sortDescendingStable()

## ◆ sort_descending_stable() [4/4]

 list Qore::sort_descending_stable ( list< auto > l, string func )

Performs a stable sort in descending order and returns the new list.

Accepts the name of a function to use to sort complex data types or to give a special sort order

Code Flags:
RET_VALUE_ONLY
Example:
list<auto> nl = sort_descending_stable(l, "my_sort_function");
Parameters
 l the list to sort func the name of a function accessible in the current scope that accepts 2 arguments of the data type in the list; the function must return -1, 0, or 1 if the first is less than the second, if the first and second are equal, or if the first is greater than the second, respectively
Returns
the sorted list
• sort_stable(list, code)
• sort_descending_stable(list, code)
• sort(list, code)
Since
Qore 0.8.12 as a replacement for deprecated camel-case sortDescendingStable()

## ◆ sort_stable() [1/4]

 auto Qore::sort_stable ( auto arg )

This function variant does nothing at all.

Code Flags:
NOOP

It is only included for backwards-compatibility with qore prior to version 0.8.0 for functions that would ignore type errors in arguments

## ◆ sort_stable() [2/4]

 list Qore::sort_stable ( list< auto > l )

Performs a stable sort in ascending order and returns the new list.

This variant will only sort basic data types

Code Flags:
CONSTANT
Example:
list<auto> nl = sort_stable(l);
auto sort_stable(auto arg)
This function variant does nothing at all.
Parameters
 l the list to sort
Returns
the sorted list
• sort(list, string)
• sort_descending(list, string)
• sort_descending_stable(list, string)
Since
Qore 0.8.12 as a replacement for deprecated camel-case sortStable()

## ◆ sort_stable() [3/4]

 list Qore::sort_stable ( list< auto > l, code f )

Performs a stable sort in ascending order and returns the new list.

Accepts a call reference or a closure to use to sort complex data types or to give a special sort order

Code Flags:
RET_VALUE_ONLY
Example:
code sort_func = int sub (hash<auto> l, hash<auto> r) { return l.id <=> r.id; };
list<auto> nl = sort_stable(l, sort_func);
Parameters
 l the list to sort f a call reference or a closure that accepts 2 arguments of the data type in the list; the code must return -1, 0, or 1 if the first is less than the second, if the first and second are equal, or if the first is greater than the second, respectively
Returns
the sorted list
• sort(list, string)
• sort_descending(list, string)
• sort_descending_stable(list, string)
Since
Qore 0.8.12 as a replacement for deprecated camel-case sortStable()

## ◆ sort_stable() [4/4]

 list Qore::sort_stable ( list< auto > l, string func )

Performs a stable sort in ascending order and returns the new list.

Accepts the name of a function to use to sort complex data types or to give a special sort order

Code Flags:
RET_VALUE_ONLY
Example:
list<auto> nl = sort_stable(l, "my_sort_function");
Parameters
 l the list to sort func the name of a function accessible in the current scope that accepts 2 arguments of the data type in the list; the function must return -1, 0, or 1 if the first is less than the second, if the first and second are equal, or if the first is greater than the second, respectively
Returns
the sorted list
• sort(list, string)
• sort_descending(list, string)
• sort_descending_stable(list, string)
Since
Qore 0.8.12 as a replacement for deprecated camel-case sortStable()

## ◆ sortDescending() [1/4]

 auto Qore::sortDescending ( auto arg )

This function variant does nothing at all.

Code Flags:
NOOP, DEPRECATED

It is only included for backwards-compatibility with qore prior to version 0.8.0 for functions that would ignore type errors in arguments

## ◆ sortDescending() [2/4]

 list Qore::sortDescending ( list< auto > l )

Performs an unstable sort in descending order and returns the new list.

This variant will only sort basic data types

Code Flags:
CONSTANT, DEPRECATED
Parameters
 l the list to sort
Returns
the sorted list
Note
This function uses an internal recursive quicksort algorithm that uses excessive stack space with large lists, therefore when the list size is > 1000 element, mergesort is used instead, which is equivalent to sort_stable()
• sort(list)
• sortDescendingStable(list)
• sortStable(list)
Deprecated:
use sort_descending(); camel-case function names were deprecated in Qore 0.8.12

## ◆ sortDescending() [3/4]

 list Qore::sortDescending ( list< auto > l, code f )

Performs an unstable sort in descending order and returns the new list.

Accepts a call reference or a closure to use to sort complex data types or to give a special sort order

Code Flags:
RET_VALUE_ONLY, DEPRECATED
Parameters
 l the list to sort f a call reference or a closure that accepts 2 arguments of the data type in the list; the code must return -1, 0, or 1 if the first is less than the second, if the first and second are equal, or if the first is greater than the second, respectively
Returns
the sorted list
Note
This function uses an internal recursive quicksort algorithm that uses excessive stack space with large lists, therefore when the list size is > 1000 element, mergesort is used instead, which is equivalent to sort_stable()
• sortStable(list, code)
• sortDescendingStable(list, code)
• sort(list, code)
Deprecated:
use sort_descending(); camel-case function names were deprecated in Qore 0.8.12

## ◆ sortDescending() [4/4]

 list Qore::sortDescending ( list< auto > l, string func )

Performs an unstable sort in descending order and returns the new list.

Accepts the name of a function to use to sort complex data types or to give a special sort order

Code Flags:
CONSTANT, DEPRECATED
Parameters
 l the list to sort func the name of a function accessible in the current scope that accepts 2 arguments of the data type in the list; the function must return -1, 0, or 1 if the first is less than the second, if the first and second are equal, or if the first is greater than the second, respectively
Returns
the sorted list
Note
This function uses an internal recursive quicksort algorithm that uses excessive stack space with large lists, therefore when the list size is > 1000 element, mergesort is used instead, which is equivalent to sort_stable()
• sortStable(list, string)
• sortDescendingStable(list, string)
• sort(list, string)
Deprecated:
use sort_descending(); camel-case function names were deprecated in Qore 0.8.12

## ◆ sortDescendingStable() [1/4]

 auto Qore::sortDescendingStable ( auto arg )

This function variant does nothing at all.

Code Flags:
NOOP, DEPRECATED

It is only included for backwards-compatibility with qore prior to version 0.8.0 for functions that would ignore type errors in arguments

## ◆ sortDescendingStable() [2/4]

 list Qore::sortDescendingStable ( list< auto > l )

Performs a stable sort in descending order and returns the new list.

This variant will only sort basic data types

Code Flags:
CONSTANT, DEPRECATED
Example:
list<auto> nl = sortDescendingStable(l);
auto sortDescendingStable(auto arg)
This function variant does nothing at all.
Parameters
 l the list to sort
Returns
the sorted list
• sort_stable(list, code)
• sort_descending_stable(list, code)
• sort(list, code)
Deprecated:
use sort_descending_stable(); camel-case function names were deprecated in Qore 0.8.12

## ◆ sortDescendingStable() [3/4]

 list Qore::sortDescendingStable ( list< auto > l, code f )

Performs a stable sort in descending order and returns the new list.

Accepts a call reference or a closure to use to sort complex data types or to give a special sort order

Code Flags:
RET_VALUE_ONLY, DEPRECATED
Example:
code sort_func = int sub (hash l, hash r) { return l.id <=> r.id; };
list<auto> nl = sortDescending(l, sort_func);
auto sortDescending(auto arg)
This function variant does nothing at all.
Parameters
 l the list to sort f a call reference or a closure that accepts 2 arguments of the data type in the list; the code must return -1, 0, or 1 if the first is less than the second, if the first and second are equal, or if the first is greater than the second, respectively
Returns
the sorted list
• sort_stable(list, code)
• sort_descending_stable(list, code)
• sort(list, code)
Deprecated:
use sort_descending_stable(); camel-case function names were deprecated in Qore 0.8.12

## ◆ sortDescendingStable() [4/4]

 list Qore::sortDescendingStable ( list< auto > l, string func )

Performs a stable sort in descending order and returns the new list.

Accepts the name of a function to use to sort complex data types or to give a special sort order

Code Flags:
RET_VALUE_ONLY, DEPRECATED
Example:
list<auto> nl = sortDescending(l, "my_sort_function");
Parameters
 l the list to sort func the name of a function accessible in the current scope that accepts 2 arguments of the data type in the list; the function must return -1, 0, or 1 if the first is less than the second, if the first and second are equal, or if the first is greater than the second, respectively
Returns
the sorted list
• sort_stable(list, code)
• sort_descending_stable(list, code)
• sort(list, code)
Deprecated:
use sort_descending_stable(); camel-case function names were deprecated in Qore 0.8.12

## ◆ sortStable() [1/4]

 auto Qore::sortStable ( auto arg )

This function variant does nothing at all.

Code Flags:
NOOP, DEPRECATED

It is only included for backwards-compatibility with qore prior to version 0.8.0 for functions that would ignore type errors in arguments

## ◆ sortStable() [2/4]

 list Qore::sortStable ( list< auto > l )

Performs a stable sort in ascending order and returns the new list.

This variant will only sort basic data types

Code Flags:
CONSTANT, DEPRECATED
Parameters
 l the list to sort
Returns
the sorted list
• sort(list, string)
• sort_descending(list, string)
• sort_descending_stable(list, string)
Deprecated:
use sort_stable(); camel-case function names were deprecated in Qore 0.8.12

## ◆ sortStable() [3/4]

 list Qore::sortStable ( list< auto > l, code f )

Performs a stable sort in ascending order and returns the new list.

Accepts a call reference or a closure to use to sort complex data types or to give a special sort order

Code Flags:
RET_VALUE_ONLY, DEPRECATED
Example:
code sort_func = int sub (hash l, hash r) { return l.id <=> r.id; };
list<auto> nl = sortStable(l, sort_func);
auto sortStable(auto arg)
This function variant does nothing at all.
Parameters
 l the list to sort f a call reference or a closure that accepts 2 arguments of the data type in the list; the code must return -1, 0, or 1 if the first is less than the second, if the first and second are equal, or if the first is greater than the second, respectively
Returns
the sorted list
• sort(list, string)
• sort_descending(list, string)
• sort_descending_stable(list, string)
Deprecated:
use sort_stable(); camel-case function names were deprecated in Qore 0.8.12

## ◆ sortStable() [4/4]

 list Qore::sortStable ( list< auto > l, string func )

Performs a stable sort in ascending order and returns the new list.

Accepts the name of a function to use to sort complex data types or to give a special sort order

Code Flags:
RET_VALUE_ONLY, DEPRECATED
Parameters
 l the list to sort func the name of a function accessible in the current scope that accepts 2 arguments of the data type in the list; the function must return -1, 0, or 1 if the first is less than the second, if the first and second are equal, or if the first is greater than the second, respectively
Returns
the sorted list