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< int > | Qore::range (int start, int stop, int step=1)
| Returns a list containing an arithmetic progression of integers. More...
list< int > | Qore::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...

## Detailed Description

List functions

## Function Documentation

## 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);

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

See also
  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);

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

See also
  inlist(auto, softlist<auto>)

## max() [1/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

See also
  min(list)

## max() [2/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

See also
  min(list, string)

## 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

See also
  min(list, code)

## max() [4/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);

Parameters

  ... | the list of values to process given directly to the function

Returns
  the maximum value in a list

See also
  min(...)

## min() [1/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

See also
  max(list)

## min() [2/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

See also
  max(list, string)

## 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

See also
  max(list, code)

## min() [4/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);

Parameters

  ... | the list of values to process given directly to the function

Returns
  the minumum value in a list

See also
  max(...)

## range() [1/2]

list<int> 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)

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

See also
  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<int> 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.

See also
  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<auto> Qore::reverse | ( | list< auto > | l | ) |

Reverses a list and returns the new list.

Code Flags:
  CONSTANT

Example:
  list<auto> nl = reverse(l);

Parameters

  l | the list to reverse

Returns
  the given list with all elements in reverse order

See also
  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<auto> 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);

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()

See also
  - sortStable(list)
  - sortDescendingStable(list)
  - sortDescending(list)

## sort() [3/4]

list<auto> 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()

See also
  - sortStable(list, string)
  - sortDescendingStable(list, string)
  - sortDescending(list, string)

## sort() [4/4]

list<auto> 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()

See also
  - sortStable(list, code)
  - sortDescendingStable(list, code)
  - sortDescending(list, code)

## 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<auto> 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);

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()

See also
  - sort(list)
  - sortDescendingStable(list)
  - sortStable(list)

Since
  Qore 0.8.12 as a replacement for deprecated camel-case sortDescending()

## sort_descending() [3/4]

list<auto> 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()

See also
  - 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() [4/4]

list<auto> 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()

See also
  - 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_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<auto> 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);

Parameters

  l | the list to sort

Returns
  the sorted list

See also
  - 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<auto> 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

See also
  - 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<auto> 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

See also
  - 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<auto> 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);

Parameters

  l | the list to sort

Returns
  the sorted list

See also
  - 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<auto> 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

See also
  - 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<auto> 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

See also
  - 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<auto> 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()

See also
  - 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<auto> 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()

See also
  - sortStable(list, string)
  - sortDescendingStable(list, string)
  - sort(list, string)

Deprecated:
  use sort_descending(); camel-case function names were deprecated in Qore 0.8.12

## sortDescending() [4/4]

list<auto> 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()

See also
  - sortStable(list, code)
  - sortDescendingStable(list, code)
  - sort(list, code)

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<auto> 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);

Parameters

  l | the list to sort

Returns
  the sorted list

See also
  - 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<auto> 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

See also
  - 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<auto> 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);

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

See also
  - 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<auto> 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

See also
  - 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<auto> 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

See also
  - 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<auto> 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);

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

See also
  - 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