\hypertarget{group__list__functions}{}\doxysection{List Functions}
\label{group__list__functions}\index{List Functions@{List Functions}}
\doxysubsection*{Functions}
\begin{DoxyCompactItemize}
\item 
bool \mbox{\hyperlink{group__list__functions_ga776993c1408e78f466e9b11aff7ecc46}{Qore\+::inlist}} ()
\begin{DoxyCompactList}\small\item\em This function variant does nothing at all. \end{DoxyCompactList}\item 
bool \mbox{\hyperlink{group__list__functions_ga67118489d63343ab95f887d785157c51}{Qore\+::inlist}} (any arg, nothing x)
\begin{DoxyCompactList}\small\item\em This function variant does nothing at all. \end{DoxyCompactList}\item 
bool \mbox{\hyperlink{group__list__functions_ga1fa8462e9bb051d40f5e60de8504fc85}{Qore\+::inlist}} (auto arg, softlist$<$ auto $>$ l)
\begin{DoxyCompactList}\small\item\em Returns \mbox{\hyperlink{basic_data_types_True}{True}} if the first argument is a member of the second argument list using soft comparisons (with implicit type conversions), \mbox{\hyperlink{basic_data_types_False}{False}} if not. \end{DoxyCompactList}\item 
bool \mbox{\hyperlink{group__list__functions_ga1fdf41e61754093da9f8a3b40e2a9cea}{Qore\+::inlist\+\_\+hard}} ()
\begin{DoxyCompactList}\small\item\em This function variant does nothing at all. \end{DoxyCompactList}\item 
bool \mbox{\hyperlink{group__list__functions_ga4668ef52b2c07e8768118bc7c8638414}{Qore\+::inlist\+\_\+hard}} (any arg, nothing x)
\begin{DoxyCompactList}\small\item\em This function variant does nothing at all. \end{DoxyCompactList}\item 
bool \mbox{\hyperlink{group__list__functions_ga15056f0f1b38aff845c6ca3dfefd3c54}{Qore\+::inlist\+\_\+hard}} (auto arg, softlist$<$ auto $>$ l)
\begin{DoxyCompactList}\small\item\em Returns \mbox{\hyperlink{basic_data_types_True}{True}} if the first argument is a member of the second argument list using hard comparisons (without any implicit type conversions), \mbox{\hyperlink{basic_data_types_False}{False}} if not. \end{DoxyCompactList}\item 
auto \mbox{\hyperlink{group__list__functions_ga67a04aa765442456f353bf8b38b50e0e}{Qore\+::max}} (\mbox{\hyperlink{group__type__conversion__functions_ga9a401e5112c58f63c05e7ee1e15968ef}{list}}$<$ auto $>$ l)
\begin{DoxyCompactList}\small\item\em Returns the maximum value in a list. \end{DoxyCompactList}\item 
auto \mbox{\hyperlink{group__list__functions_ga1b2222960f25089fffe260cbc66b3fcb}{Qore\+::max}} (\mbox{\hyperlink{group__type__conversion__functions_ga9a401e5112c58f63c05e7ee1e15968ef}{list}}$<$ auto $>$ l, \mbox{\hyperlink{group__type__conversion__functions_gacf16b4126b795f4b6933ef3425cadae3}{string}} func)
\begin{DoxyCompactList}\small\item\em Returns the maximum value in a list. \end{DoxyCompactList}\item 
auto \mbox{\hyperlink{group__list__functions_ga3cff204a3ac62a6fd5690805caba38d0}{Qore\+::max}} (\mbox{\hyperlink{group__type__conversion__functions_ga9a401e5112c58f63c05e7ee1e15968ef}{list}}$<$ auto $>$ l, code f)
\begin{DoxyCompactList}\small\item\em Returns the maximum value in a list. \end{DoxyCompactList}\item 
auto \mbox{\hyperlink{group__list__functions_ga748c43cafa3ab5aef9e24d983e89f047}{Qore\+::max}} (...)
\begin{DoxyCompactList}\small\item\em Returns the maximum value of the arguments passed to the function. \end{DoxyCompactList}\item 
auto \mbox{\hyperlink{group__list__functions_ga82c657a31963077edb54dd9b54b4683a}{Qore\+::min}} (\mbox{\hyperlink{group__type__conversion__functions_ga9a401e5112c58f63c05e7ee1e15968ef}{list}}$<$ auto $>$ l)
\begin{DoxyCompactList}\small\item\em Returns the minumum value in a list. \end{DoxyCompactList}\item 
auto \mbox{\hyperlink{group__list__functions_gacb7f83f203b362521f60a2ffeada3658}{Qore\+::min}} (\mbox{\hyperlink{group__type__conversion__functions_ga9a401e5112c58f63c05e7ee1e15968ef}{list}}$<$ auto $>$ l, \mbox{\hyperlink{group__type__conversion__functions_gacf16b4126b795f4b6933ef3425cadae3}{string}} func)
\begin{DoxyCompactList}\small\item\em Returns the minumum value in a list. \end{DoxyCompactList}\item 
auto \mbox{\hyperlink{group__list__functions_gacdcdbb97650be35e84a44a86ebf1deed}{Qore\+::min}} (\mbox{\hyperlink{group__type__conversion__functions_ga9a401e5112c58f63c05e7ee1e15968ef}{list}}$<$ auto $>$ l, code f)
\begin{DoxyCompactList}\small\item\em Returns the minumum value in a list. \end{DoxyCompactList}\item 
auto \mbox{\hyperlink{group__list__functions_gadd91030761ee2fa0b1783f76b2ea467c}{Qore\+::min}} (...)
\begin{DoxyCompactList}\small\item\em Returns the minumum value of the arguments passed to the function. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__type__conversion__functions_ga9a401e5112c58f63c05e7ee1e15968ef}{list}}$<$ \mbox{\hyperlink{group__type__conversion__functions_ga2de8717e92c5f97ccc6511f6062d6502}{int}} $>$ \mbox{\hyperlink{group__list__functions_ga0bf214ec2c777032a6078bd979637e69}{Qore\+::range}} (\mbox{\hyperlink{group__type__conversion__functions_ga2de8717e92c5f97ccc6511f6062d6502}{int}} start, \mbox{\hyperlink{group__type__conversion__functions_ga2de8717e92c5f97ccc6511f6062d6502}{int}} stop, \mbox{\hyperlink{group__type__conversion__functions_ga2de8717e92c5f97ccc6511f6062d6502}{int}} step=1)
\begin{DoxyCompactList}\small\item\em Returns a list containing an arithmetic progression of integers. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__type__conversion__functions_ga9a401e5112c58f63c05e7ee1e15968ef}{list}}$<$ \mbox{\hyperlink{group__type__conversion__functions_ga2de8717e92c5f97ccc6511f6062d6502}{int}} $>$ \mbox{\hyperlink{group__list__functions_ga74a1dd2ee35e7ae10f3bccb68b56e9ea}{Qore\+::range}} (\mbox{\hyperlink{group__type__conversion__functions_ga2de8717e92c5f97ccc6511f6062d6502}{int}} stop)
\begin{DoxyCompactList}\small\item\em Returns a list containing an arithmetic progression of integers with start = 0 and step = 1. \end{DoxyCompactList}\item 
nothing \mbox{\hyperlink{group__list__functions_ga8d6317ddd1278a3a8ee255ec160333c3}{Qore\+::reverse}} ()
\begin{DoxyCompactList}\small\item\em This function variant does nothing at all. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__type__conversion__functions_ga9a401e5112c58f63c05e7ee1e15968ef}{list}}$<$ auto $>$ \mbox{\hyperlink{group__list__functions_gadf24f99f9547d317e081f8d26c31decb}{Qore\+::reverse}} (\mbox{\hyperlink{group__type__conversion__functions_ga9a401e5112c58f63c05e7ee1e15968ef}{list}}$<$ auto $>$ l)
\begin{DoxyCompactList}\small\item\em Reverses a list and returns the new list. \end{DoxyCompactList}\item 
auto \mbox{\hyperlink{group__list__functions_gaff8cac5bd5ffb29fb750e273e4e8fe92}{Qore\+::sort}} (auto arg)
\begin{DoxyCompactList}\small\item\em This function variant does nothing at all. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__type__conversion__functions_ga9a401e5112c58f63c05e7ee1e15968ef}{list}}$<$ auto $>$ \mbox{\hyperlink{group__list__functions_ga7bc9cde41c96aae005878b9ba8b50996}{Qore\+::sort}} (\mbox{\hyperlink{group__type__conversion__functions_ga9a401e5112c58f63c05e7ee1e15968ef}{list}}$<$ auto $>$ l)
\begin{DoxyCompactList}\small\item\em Performs an unstable sort in ascending order and returns the new list. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__type__conversion__functions_ga9a401e5112c58f63c05e7ee1e15968ef}{list}}$<$ auto $>$ \mbox{\hyperlink{group__list__functions_gab5f32852ee7c739a46136859a28edaa8}{Qore\+::sort}} (\mbox{\hyperlink{group__type__conversion__functions_ga9a401e5112c58f63c05e7ee1e15968ef}{list}}$<$ auto $>$ l, \mbox{\hyperlink{group__type__conversion__functions_gacf16b4126b795f4b6933ef3425cadae3}{string}} func)
\begin{DoxyCompactList}\small\item\em Performs an unstable sort in ascending order and returns the new list. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__type__conversion__functions_ga9a401e5112c58f63c05e7ee1e15968ef}{list}}$<$ auto $>$ \mbox{\hyperlink{group__list__functions_ga203d9ab4f39a7779dcb666f6f9477ffb}{Qore\+::sort}} (\mbox{\hyperlink{group__type__conversion__functions_ga9a401e5112c58f63c05e7ee1e15968ef}{list}}$<$ auto $>$ l, code f)
\begin{DoxyCompactList}\small\item\em Performs an unstable sort in ascending order and returns the new list. \end{DoxyCompactList}\item 
auto \mbox{\hyperlink{group__list__functions_gad9e205ca0a43f52a1388611b54521c19}{Qore\+::sort\+Descending}} (auto arg)
\begin{DoxyCompactList}\small\item\em This function variant does nothing at all. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__type__conversion__functions_ga9a401e5112c58f63c05e7ee1e15968ef}{list}}$<$ auto $>$ \mbox{\hyperlink{group__list__functions_gad54b8a02d2c883f047e664c49211bf11}{Qore\+::sort\+Descending}} (\mbox{\hyperlink{group__type__conversion__functions_ga9a401e5112c58f63c05e7ee1e15968ef}{list}}$<$ auto $>$ l)
\begin{DoxyCompactList}\small\item\em Performs an unstable sort in descending order and returns the new list. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__type__conversion__functions_ga9a401e5112c58f63c05e7ee1e15968ef}{list}}$<$ auto $>$ \mbox{\hyperlink{group__list__functions_gae9395c79d35b26bfb8347ed88346b9a2}{Qore\+::sort\+Descending}} (\mbox{\hyperlink{group__type__conversion__functions_ga9a401e5112c58f63c05e7ee1e15968ef}{list}}$<$ auto $>$ l, \mbox{\hyperlink{group__type__conversion__functions_gacf16b4126b795f4b6933ef3425cadae3}{string}} func)
\begin{DoxyCompactList}\small\item\em Performs an unstable sort in descending order and returns the new list. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__type__conversion__functions_ga9a401e5112c58f63c05e7ee1e15968ef}{list}}$<$ auto $>$ \mbox{\hyperlink{group__list__functions_ga0c5c62c898a87542db7fc6f24b4f5302}{Qore\+::sort\+Descending}} (\mbox{\hyperlink{group__type__conversion__functions_ga9a401e5112c58f63c05e7ee1e15968ef}{list}}$<$ auto $>$ l, code f)
\begin{DoxyCompactList}\small\item\em Performs an unstable sort in descending order and returns the new list. \end{DoxyCompactList}\item 
auto \mbox{\hyperlink{group__list__functions_gacd07eea87f385a0bb8764a9fa5b47075}{Qore\+::sort\+Descending\+Stable}} (auto arg)
\begin{DoxyCompactList}\small\item\em This function variant does nothing at all. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__type__conversion__functions_ga9a401e5112c58f63c05e7ee1e15968ef}{list}}$<$ auto $>$ \mbox{\hyperlink{group__list__functions_gaaa91d21c4ca952412d24c5e56dc234d9}{Qore\+::sort\+Descending\+Stable}} (\mbox{\hyperlink{group__type__conversion__functions_ga9a401e5112c58f63c05e7ee1e15968ef}{list}}$<$ auto $>$ l)
\begin{DoxyCompactList}\small\item\em Performs a stable sort in descending order and returns the new list. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__type__conversion__functions_ga9a401e5112c58f63c05e7ee1e15968ef}{list}}$<$ auto $>$ \mbox{\hyperlink{group__list__functions_gad2f335f27dbcf04054d81f722d501523}{Qore\+::sort\+Descending\+Stable}} (\mbox{\hyperlink{group__type__conversion__functions_ga9a401e5112c58f63c05e7ee1e15968ef}{list}}$<$ auto $>$ l, \mbox{\hyperlink{group__type__conversion__functions_gacf16b4126b795f4b6933ef3425cadae3}{string}} func)
\begin{DoxyCompactList}\small\item\em Performs a stable sort in descending order and returns the new list. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__type__conversion__functions_ga9a401e5112c58f63c05e7ee1e15968ef}{list}}$<$ auto $>$ \mbox{\hyperlink{group__list__functions_ga86422aa7024efb5758b7eca0fe60064a}{Qore\+::sort\+Descending\+Stable}} (\mbox{\hyperlink{group__type__conversion__functions_ga9a401e5112c58f63c05e7ee1e15968ef}{list}}$<$ auto $>$ l, code f)
\begin{DoxyCompactList}\small\item\em Performs a stable sort in descending order and returns the new list. \end{DoxyCompactList}\item 
auto \mbox{\hyperlink{group__list__functions_ga6202469e6119631474b685952cefe11f}{Qore\+::sort\+Stable}} (auto arg)
\begin{DoxyCompactList}\small\item\em This function variant does nothing at all. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__type__conversion__functions_ga9a401e5112c58f63c05e7ee1e15968ef}{list}}$<$ auto $>$ \mbox{\hyperlink{group__list__functions_ga235144befca6fe42001133e65568a54d}{Qore\+::sort\+Stable}} (\mbox{\hyperlink{group__type__conversion__functions_ga9a401e5112c58f63c05e7ee1e15968ef}{list}}$<$ auto $>$ l)
\begin{DoxyCompactList}\small\item\em Performs a stable sort in ascending order and returns the new list. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__type__conversion__functions_ga9a401e5112c58f63c05e7ee1e15968ef}{list}}$<$ auto $>$ \mbox{\hyperlink{group__list__functions_ga69d2747df7b021b83da4c40222caddb0}{Qore\+::sort\+Stable}} (\mbox{\hyperlink{group__type__conversion__functions_ga9a401e5112c58f63c05e7ee1e15968ef}{list}}$<$ auto $>$ l, \mbox{\hyperlink{group__type__conversion__functions_gacf16b4126b795f4b6933ef3425cadae3}{string}} func)
\begin{DoxyCompactList}\small\item\em Performs a stable sort in ascending order and returns the new list. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__type__conversion__functions_ga9a401e5112c58f63c05e7ee1e15968ef}{list}}$<$ auto $>$ \mbox{\hyperlink{group__list__functions_gaaefd1b7c506736541e306517cfd9d228}{Qore\+::sort\+Stable}} (\mbox{\hyperlink{group__type__conversion__functions_ga9a401e5112c58f63c05e7ee1e15968ef}{list}}$<$ auto $>$ l, code f)
\begin{DoxyCompactList}\small\item\em Performs a stable sort in ascending order and returns the new list. \end{DoxyCompactList}\item 
auto \mbox{\hyperlink{group__list__functions_ga0149391f4fb2c97dd4ad2080f9240753}{Qore\+::sort\+\_\+descending}} (auto arg)
\begin{DoxyCompactList}\small\item\em This function variant does nothing at all. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__type__conversion__functions_ga9a401e5112c58f63c05e7ee1e15968ef}{list}}$<$ auto $>$ \mbox{\hyperlink{group__list__functions_ga6af37f0b528729df1a88b614727d7894}{Qore\+::sort\+\_\+descending}} (\mbox{\hyperlink{group__type__conversion__functions_ga9a401e5112c58f63c05e7ee1e15968ef}{list}}$<$ auto $>$ l)
\begin{DoxyCompactList}\small\item\em Performs an unstable sort in descending order and returns the new list. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__type__conversion__functions_ga9a401e5112c58f63c05e7ee1e15968ef}{list}}$<$ auto $>$ \mbox{\hyperlink{group__list__functions_gaaa5c91fb80b8fbb196deea9706c53637}{Qore\+::sort\+\_\+descending}} (\mbox{\hyperlink{group__type__conversion__functions_ga9a401e5112c58f63c05e7ee1e15968ef}{list}}$<$ auto $>$ l, \mbox{\hyperlink{group__type__conversion__functions_gacf16b4126b795f4b6933ef3425cadae3}{string}} func)
\begin{DoxyCompactList}\small\item\em Performs an unstable sort in descending order and returns the new list. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__type__conversion__functions_ga9a401e5112c58f63c05e7ee1e15968ef}{list}}$<$ auto $>$ \mbox{\hyperlink{group__list__functions_gaf1a4d22195c41fbae7a177f8033ab83b}{Qore\+::sort\+\_\+descending}} (\mbox{\hyperlink{group__type__conversion__functions_ga9a401e5112c58f63c05e7ee1e15968ef}{list}}$<$ auto $>$ l, code f)
\begin{DoxyCompactList}\small\item\em Performs an unstable sort in descending order and returns the new list. \end{DoxyCompactList}\item 
auto \mbox{\hyperlink{group__list__functions_ga59bf2466a7bd64db585ad1b2b5f7ae7d}{Qore\+::sort\+\_\+descending\+\_\+stable}} (auto arg)
\begin{DoxyCompactList}\small\item\em This function variant does nothing at all. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__type__conversion__functions_ga9a401e5112c58f63c05e7ee1e15968ef}{list}}$<$ auto $>$ \mbox{\hyperlink{group__list__functions_ga37d7c190707fdb7d88f72c2eb0c7bad8}{Qore\+::sort\+\_\+descending\+\_\+stable}} (\mbox{\hyperlink{group__type__conversion__functions_ga9a401e5112c58f63c05e7ee1e15968ef}{list}}$<$ auto $>$ l)
\begin{DoxyCompactList}\small\item\em Performs a stable sort in descending order and returns the new list. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__type__conversion__functions_ga9a401e5112c58f63c05e7ee1e15968ef}{list}}$<$ auto $>$ \mbox{\hyperlink{group__list__functions_ga30e016ca1469bd2502df83fb07e2bd88}{Qore\+::sort\+\_\+descending\+\_\+stable}} (\mbox{\hyperlink{group__type__conversion__functions_ga9a401e5112c58f63c05e7ee1e15968ef}{list}}$<$ auto $>$ l, \mbox{\hyperlink{group__type__conversion__functions_gacf16b4126b795f4b6933ef3425cadae3}{string}} func)
\begin{DoxyCompactList}\small\item\em Performs a stable sort in descending order and returns the new list. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__type__conversion__functions_ga9a401e5112c58f63c05e7ee1e15968ef}{list}}$<$ auto $>$ \mbox{\hyperlink{group__list__functions_ga624b46ceb80f6e86d867d0e3db79b346}{Qore\+::sort\+\_\+descending\+\_\+stable}} (\mbox{\hyperlink{group__type__conversion__functions_ga9a401e5112c58f63c05e7ee1e15968ef}{list}}$<$ auto $>$ l, code f)
\begin{DoxyCompactList}\small\item\em Performs a stable sort in descending order and returns the new list. \end{DoxyCompactList}\item 
auto \mbox{\hyperlink{group__list__functions_gad03629b1133f3a6b47a2f33792801dbf}{Qore\+::sort\+\_\+stable}} (auto arg)
\begin{DoxyCompactList}\small\item\em This function variant does nothing at all. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__type__conversion__functions_ga9a401e5112c58f63c05e7ee1e15968ef}{list}}$<$ auto $>$ \mbox{\hyperlink{group__list__functions_ga0cee8fcfee6501a7de9510c6a89fbfb0}{Qore\+::sort\+\_\+stable}} (\mbox{\hyperlink{group__type__conversion__functions_ga9a401e5112c58f63c05e7ee1e15968ef}{list}}$<$ auto $>$ l)
\begin{DoxyCompactList}\small\item\em Performs a stable sort in ascending order and returns the new list. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__type__conversion__functions_ga9a401e5112c58f63c05e7ee1e15968ef}{list}}$<$ auto $>$ \mbox{\hyperlink{group__list__functions_gacda245ada866f057bcce740031b66245}{Qore\+::sort\+\_\+stable}} (\mbox{\hyperlink{group__type__conversion__functions_ga9a401e5112c58f63c05e7ee1e15968ef}{list}}$<$ auto $>$ l, \mbox{\hyperlink{group__type__conversion__functions_gacf16b4126b795f4b6933ef3425cadae3}{string}} func)
\begin{DoxyCompactList}\small\item\em Performs a stable sort in ascending order and returns the new list. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__type__conversion__functions_ga9a401e5112c58f63c05e7ee1e15968ef}{list}}$<$ auto $>$ \mbox{\hyperlink{group__list__functions_ga776f8d8c6883c0aa792031c095cf8fba}{Qore\+::sort\+\_\+stable}} (\mbox{\hyperlink{group__type__conversion__functions_ga9a401e5112c58f63c05e7ee1e15968ef}{list}}$<$ auto $>$ l, code f)
\begin{DoxyCompactList}\small\item\em Performs a stable sort in ascending order and returns the new list. \end{DoxyCompactList}\end{DoxyCompactItemize}


\doxysubsection{Detailed Description}
List functions 

\doxysubsection{Function Documentation}
\mbox{\Hypertarget{group__list__functions_ga776993c1408e78f466e9b11aff7ecc46}\label{group__list__functions_ga776993c1408e78f466e9b11aff7ecc46}} 
\index{List Functions@{List Functions}!inlist@{inlist}}
\index{inlist@{inlist}!List Functions@{List Functions}}
\doxysubsubsection{\texorpdfstring{inlist()}{inlist()}\hspace{0.1cm}{\footnotesize\ttfamily [1/3]}}
{\footnotesize\ttfamily bool Qore\+::inlist (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}



This function variant does nothing at all. 

\begin{DoxyParagraph}{Code Flags\+:}
\mbox{\hyperlink{code_flags_NOOP}{NOOP}}
\end{DoxyParagraph}
It is only included for backwards-\/compatibility with qore prior to version 0.\+8.\+0 for functions that would ignore type errors in arguments \mbox{\Hypertarget{group__list__functions_ga67118489d63343ab95f887d785157c51}\label{group__list__functions_ga67118489d63343ab95f887d785157c51}} 
\index{List Functions@{List Functions}!inlist@{inlist}}
\index{inlist@{inlist}!List Functions@{List Functions}}
\doxysubsubsection{\texorpdfstring{inlist()}{inlist()}\hspace{0.1cm}{\footnotesize\ttfamily [2/3]}}
{\footnotesize\ttfamily bool Qore\+::inlist (\begin{DoxyParamCaption}\item[{any}]{arg,  }\item[{nothing}]{x }\end{DoxyParamCaption})}



This function variant does nothing at all. 

\begin{DoxyParagraph}{Code Flags\+:}
\mbox{\hyperlink{code_flags_NOOP}{NOOP}}
\end{DoxyParagraph}
It is only included for backwards-\/compatibility with qore prior to version 0.\+8.\+0 for functions that would ignore type errors in arguments \mbox{\Hypertarget{group__list__functions_ga1fa8462e9bb051d40f5e60de8504fc85}\label{group__list__functions_ga1fa8462e9bb051d40f5e60de8504fc85}} 
\index{List Functions@{List Functions}!inlist@{inlist}}
\index{inlist@{inlist}!List Functions@{List Functions}}
\doxysubsubsection{\texorpdfstring{inlist()}{inlist()}\hspace{0.1cm}{\footnotesize\ttfamily [3/3]}}
{\footnotesize\ttfamily bool Qore\+::inlist (\begin{DoxyParamCaption}\item[{auto}]{arg,  }\item[{softlist$<$ auto $>$}]{l }\end{DoxyParamCaption})}



Returns \mbox{\hyperlink{basic_data_types_True}{True}} if the first argument is a member of the second argument list using soft comparisons (with implicit type conversions), \mbox{\hyperlink{basic_data_types_False}{False}} if not. 

\begin{DoxyParagraph}{Code Flags\+:}
\mbox{\hyperlink{code_flags_RET_VALUE_ONLY}{RET\+\_\+\+VALUE\+\_\+\+ONLY}}
\end{DoxyParagraph}
\begin{DoxyParagraph}{Example\+:}

\begin{DoxyCode}{0}
\DoxyCodeLine{\textcolor{keywordflow}{if} (inlist(str, strlist))}
\DoxyCodeLine{    printf(\textcolor{stringliteral}{"{}\%y is in \%y\(\backslash\)n"{}}, str, strlist);}

\end{DoxyCode}

\end{DoxyParagraph}

\begin{DoxyParams}{Parameters}
{\em arg} & the argument to look for in the list \\
\hline
{\em l} & the list to search for the first argument {\itshape arg} \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
\mbox{\hyperlink{basic_data_types_True}{True}} if the first argument is a member of the second argument list using soft comparisons (with implicit type conversions), \mbox{\hyperlink{basic_data_types_False}{False}} if not
\end{DoxyReturn}
\begin{DoxySeeAlso}{See also}
\mbox{\hyperlink{group__list__functions_ga15056f0f1b38aff845c6ca3dfefd3c54}{inlist\+\_\+hard(auto, softlist$<$auto$>$)}} 
\end{DoxySeeAlso}
\mbox{\Hypertarget{group__list__functions_ga1fdf41e61754093da9f8a3b40e2a9cea}\label{group__list__functions_ga1fdf41e61754093da9f8a3b40e2a9cea}} 
\index{List Functions@{List Functions}!inlist\_hard@{inlist\_hard}}
\index{inlist\_hard@{inlist\_hard}!List Functions@{List Functions}}
\doxysubsubsection{\texorpdfstring{inlist\_hard()}{inlist\_hard()}\hspace{0.1cm}{\footnotesize\ttfamily [1/3]}}
{\footnotesize\ttfamily bool Qore\+::inlist\+\_\+hard (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}



This function variant does nothing at all. 

\begin{DoxyParagraph}{Code Flags\+:}
\mbox{\hyperlink{code_flags_NOOP}{NOOP}}
\end{DoxyParagraph}
It is only included for backwards-\/compatibility with qore prior to version 0.\+8.\+0 for functions that would ignore type errors in arguments \mbox{\Hypertarget{group__list__functions_ga4668ef52b2c07e8768118bc7c8638414}\label{group__list__functions_ga4668ef52b2c07e8768118bc7c8638414}} 
\index{List Functions@{List Functions}!inlist\_hard@{inlist\_hard}}
\index{inlist\_hard@{inlist\_hard}!List Functions@{List Functions}}
\doxysubsubsection{\texorpdfstring{inlist\_hard()}{inlist\_hard()}\hspace{0.1cm}{\footnotesize\ttfamily [2/3]}}
{\footnotesize\ttfamily bool Qore\+::inlist\+\_\+hard (\begin{DoxyParamCaption}\item[{any}]{arg,  }\item[{nothing}]{x }\end{DoxyParamCaption})}



This function variant does nothing at all. 

\begin{DoxyParagraph}{Code Flags\+:}
\mbox{\hyperlink{code_flags_NOOP}{NOOP}}
\end{DoxyParagraph}
It is only included for backwards-\/compatibility with qore prior to version 0.\+8.\+0 for functions that would ignore type errors in arguments \mbox{\Hypertarget{group__list__functions_ga15056f0f1b38aff845c6ca3dfefd3c54}\label{group__list__functions_ga15056f0f1b38aff845c6ca3dfefd3c54}} 
\index{List Functions@{List Functions}!inlist\_hard@{inlist\_hard}}
\index{inlist\_hard@{inlist\_hard}!List Functions@{List Functions}}
\doxysubsubsection{\texorpdfstring{inlist\_hard()}{inlist\_hard()}\hspace{0.1cm}{\footnotesize\ttfamily [3/3]}}
{\footnotesize\ttfamily bool Qore\+::inlist\+\_\+hard (\begin{DoxyParamCaption}\item[{auto}]{arg,  }\item[{softlist$<$ auto $>$}]{l }\end{DoxyParamCaption})}



Returns \mbox{\hyperlink{basic_data_types_True}{True}} if the first argument is a member of the second argument list using hard comparisons (without any implicit type conversions), \mbox{\hyperlink{basic_data_types_False}{False}} if not. 

\begin{DoxyParagraph}{Code Flags\+:}
\mbox{\hyperlink{code_flags_RET_VALUE_ONLY}{RET\+\_\+\+VALUE\+\_\+\+ONLY}}
\end{DoxyParagraph}
\begin{DoxyParagraph}{Example\+:}

\begin{DoxyCode}{0}
\DoxyCodeLine{\textcolor{keywordflow}{if} (inlist\_hard(str, strlist))}
\DoxyCodeLine{    printf(\textcolor{stringliteral}{"{}\%y is in \%y\(\backslash\)n"{}}, str, strlist);}

\end{DoxyCode}

\end{DoxyParagraph}

\begin{DoxyParams}{Parameters}
{\em arg} & the argument to look for in the list \\
\hline
{\em l} & the list to search for the first argument {\itshape arg} \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
\mbox{\hyperlink{basic_data_types_True}{True}} if the first argument is a member of the second argument list using hard comparisons (without any implicit type conversions), \mbox{\hyperlink{basic_data_types_False}{False}} if not
\end{DoxyReturn}
\begin{DoxySeeAlso}{See also}
\mbox{\hyperlink{group__list__functions_ga1fa8462e9bb051d40f5e60de8504fc85}{inlist(auto, softlist$<$auto$>$)}} 
\end{DoxySeeAlso}
\mbox{\Hypertarget{group__list__functions_ga748c43cafa3ab5aef9e24d983e89f047}\label{group__list__functions_ga748c43cafa3ab5aef9e24d983e89f047}} 
\index{List Functions@{List Functions}!max@{max}}
\index{max@{max}!List Functions@{List Functions}}
\doxysubsubsection{\texorpdfstring{max()}{max()}\hspace{0.1cm}{\footnotesize\ttfamily [1/4]}}
{\footnotesize\ttfamily auto Qore\+::max (\begin{DoxyParamCaption}\item[{}]{... }\end{DoxyParamCaption})}



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

This variant will only work on basic data types

\begin{DoxyParagraph}{Code Flags\+:}
\mbox{\hyperlink{code_flags_CONSTANT}{CONSTANT}}
\end{DoxyParagraph}
\begin{DoxyParagraph}{Example\+:}

\begin{DoxyCode}{0}
\DoxyCodeLine{auto v = max(v1, v2, v3);}

\end{DoxyCode}

\end{DoxyParagraph}

\begin{DoxyParams}{Parameters}
{\em ...} & the list of values to process given directly to the function\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
the maximum value in a list
\end{DoxyReturn}
\begin{DoxySeeAlso}{See also}
\mbox{\hyperlink{group__list__functions_gadd91030761ee2fa0b1783f76b2ea467c}{min(...)}} 
\end{DoxySeeAlso}
\mbox{\Hypertarget{group__list__functions_ga67a04aa765442456f353bf8b38b50e0e}\label{group__list__functions_ga67a04aa765442456f353bf8b38b50e0e}} 
\index{List Functions@{List Functions}!max@{max}}
\index{max@{max}!List Functions@{List Functions}}
\doxysubsubsection{\texorpdfstring{max()}{max()}\hspace{0.1cm}{\footnotesize\ttfamily [2/4]}}
{\footnotesize\ttfamily auto Qore\+::max (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{group__type__conversion__functions_ga9a401e5112c58f63c05e7ee1e15968ef}{list}}$<$ auto $>$}]{l }\end{DoxyParamCaption})}



Returns the maximum value in a list. 

This variant will only work on basic data types

\begin{DoxyParagraph}{Code Flags\+:}
\mbox{\hyperlink{code_flags_CONSTANT}{CONSTANT}}
\end{DoxyParagraph}
\begin{DoxyParagraph}{Example\+:}

\begin{DoxyCode}{0}
\DoxyCodeLine{auto v = max(l);}

\end{DoxyCode}

\end{DoxyParagraph}

\begin{DoxyParams}{Parameters}
{\em l} & the list to process\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
the maximum value in a list
\end{DoxyReturn}
\begin{DoxySeeAlso}{See also}
min(list) 
\end{DoxySeeAlso}
\mbox{\Hypertarget{group__list__functions_ga3cff204a3ac62a6fd5690805caba38d0}\label{group__list__functions_ga3cff204a3ac62a6fd5690805caba38d0}} 
\index{List Functions@{List Functions}!max@{max}}
\index{max@{max}!List Functions@{List Functions}}
\doxysubsubsection{\texorpdfstring{max()}{max()}\hspace{0.1cm}{\footnotesize\ttfamily [3/4]}}
{\footnotesize\ttfamily auto Qore\+::max (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{group__type__conversion__functions_ga9a401e5112c58f63c05e7ee1e15968ef}{list}}$<$ auto $>$}]{l,  }\item[{code}]{f }\end{DoxyParamCaption})}



Returns the maximum value in a list. 

Accepts a \mbox{\hyperlink{expressions_call_reference}{call reference}} or a \mbox{\hyperlink{expressions_closure}{closure}} to use to compare complex data types or to give a special sort order

\begin{DoxyParagraph}{Code Flags\+:}
\mbox{\hyperlink{code_flags_RET_VALUE_ONLY}{RET\+\_\+\+VALUE\+\_\+\+ONLY}}
\end{DoxyParagraph}
\begin{DoxyParagraph}{Example\+:}

\begin{DoxyCode}{0}
\DoxyCodeLine{code sort\_func = int sub (hash l, hash r) \{ \textcolor{keywordflow}{return} l.id <=> r.id; \};}
\DoxyCodeLine{auto v = max(l, sort\_func);}

\end{DoxyCode}

\end{DoxyParagraph}

\begin{DoxyParams}{Parameters}
{\em l} & the list to sort \\
\hline
{\em f} & a \mbox{\hyperlink{expressions_call_reference}{call reference}} or a \mbox{\hyperlink{expressions_closure}{closure}} that accepts 2 arguments of the data type in the list; the \mbox{\hyperlink{expressions_call_reference}{call reference}} or a \mbox{\hyperlink{expressions_closure}{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\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
the maximum value in a list
\end{DoxyReturn}
\begin{DoxySeeAlso}{See also}
min(list, code) 
\end{DoxySeeAlso}
\mbox{\Hypertarget{group__list__functions_ga1b2222960f25089fffe260cbc66b3fcb}\label{group__list__functions_ga1b2222960f25089fffe260cbc66b3fcb}} 
\index{List Functions@{List Functions}!max@{max}}
\index{max@{max}!List Functions@{List Functions}}
\doxysubsubsection{\texorpdfstring{max()}{max()}\hspace{0.1cm}{\footnotesize\ttfamily [4/4]}}
{\footnotesize\ttfamily auto Qore\+::max (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{group__type__conversion__functions_ga9a401e5112c58f63c05e7ee1e15968ef}{list}}$<$ auto $>$}]{l,  }\item[{\mbox{\hyperlink{group__type__conversion__functions_gacf16b4126b795f4b6933ef3425cadae3}{string}}}]{func }\end{DoxyParamCaption})}



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

\begin{DoxyParagraph}{Code Flags\+:}
\mbox{\hyperlink{code_flags_RET_VALUE_ONLY}{RET\+\_\+\+VALUE\+\_\+\+ONLY}}
\end{DoxyParagraph}
\begin{DoxyParagraph}{Example\+:}

\begin{DoxyCode}{0}
\DoxyCodeLine{auto v = max(l, \textcolor{stringliteral}{"{}my\_sort\_function"{}});}

\end{DoxyCode}

\end{DoxyParagraph}

\begin{DoxyParams}{Parameters}
{\em l} & the list to sort \\
\hline
{\em 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\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
the maximum value in a list
\end{DoxyReturn}
\begin{DoxySeeAlso}{See also}
min(list, string) 
\end{DoxySeeAlso}
\mbox{\Hypertarget{group__list__functions_gadd91030761ee2fa0b1783f76b2ea467c}\label{group__list__functions_gadd91030761ee2fa0b1783f76b2ea467c}} 
\index{List Functions@{List Functions}!min@{min}}
\index{min@{min}!List Functions@{List Functions}}
\doxysubsubsection{\texorpdfstring{min()}{min()}\hspace{0.1cm}{\footnotesize\ttfamily [1/4]}}
{\footnotesize\ttfamily auto Qore\+::min (\begin{DoxyParamCaption}\item[{}]{... }\end{DoxyParamCaption})}



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

This variant will only work on basic data types

\begin{DoxyParagraph}{Code Flags\+:}
\mbox{\hyperlink{code_flags_CONSTANT}{CONSTANT}}
\end{DoxyParagraph}
\begin{DoxyParagraph}{Example\+:}

\begin{DoxyCode}{0}
\DoxyCodeLine{auto v = min(v1, v2, v3);}

\end{DoxyCode}

\end{DoxyParagraph}

\begin{DoxyParams}{Parameters}
{\em ...} & the list of values to process given directly to the function\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
the minumum value in a list
\end{DoxyReturn}
\begin{DoxySeeAlso}{See also}
\mbox{\hyperlink{group__list__functions_ga748c43cafa3ab5aef9e24d983e89f047}{max(...)}} 
\end{DoxySeeAlso}
\mbox{\Hypertarget{group__list__functions_ga82c657a31963077edb54dd9b54b4683a}\label{group__list__functions_ga82c657a31963077edb54dd9b54b4683a}} 
\index{List Functions@{List Functions}!min@{min}}
\index{min@{min}!List Functions@{List Functions}}
\doxysubsubsection{\texorpdfstring{min()}{min()}\hspace{0.1cm}{\footnotesize\ttfamily [2/4]}}
{\footnotesize\ttfamily auto Qore\+::min (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{group__type__conversion__functions_ga9a401e5112c58f63c05e7ee1e15968ef}{list}}$<$ auto $>$}]{l }\end{DoxyParamCaption})}



Returns the minumum value in a list. 

This variant will only work on basic data types

\begin{DoxyParagraph}{Code Flags\+:}
\mbox{\hyperlink{code_flags_CONSTANT}{CONSTANT}}
\end{DoxyParagraph}
\begin{DoxyParagraph}{Example\+:}

\begin{DoxyCode}{0}
\DoxyCodeLine{auto v = min(l);}

\end{DoxyCode}

\end{DoxyParagraph}

\begin{DoxyParams}{Parameters}
{\em l} & the list to process\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
the minumum value in a list
\end{DoxyReturn}
\begin{DoxySeeAlso}{See also}
max(list) 
\end{DoxySeeAlso}
\mbox{\Hypertarget{group__list__functions_gacdcdbb97650be35e84a44a86ebf1deed}\label{group__list__functions_gacdcdbb97650be35e84a44a86ebf1deed}} 
\index{List Functions@{List Functions}!min@{min}}
\index{min@{min}!List Functions@{List Functions}}
\doxysubsubsection{\texorpdfstring{min()}{min()}\hspace{0.1cm}{\footnotesize\ttfamily [3/4]}}
{\footnotesize\ttfamily auto Qore\+::min (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{group__type__conversion__functions_ga9a401e5112c58f63c05e7ee1e15968ef}{list}}$<$ auto $>$}]{l,  }\item[{code}]{f }\end{DoxyParamCaption})}



Returns the minumum value in a list. 

Accepts a \mbox{\hyperlink{expressions_call_reference}{call reference}} or a \mbox{\hyperlink{expressions_closure}{closure}} to use to compare complex data types or to give a special sort order

\begin{DoxyParagraph}{Code Flags\+:}
\mbox{\hyperlink{code_flags_RET_VALUE_ONLY}{RET\+\_\+\+VALUE\+\_\+\+ONLY}}
\end{DoxyParagraph}
\begin{DoxyParagraph}{Example\+:}

\begin{DoxyCode}{0}
\DoxyCodeLine{code sort\_func = int sub (hash l, hash r) \{ \textcolor{keywordflow}{return} l.id <=> r.id; \};}
\DoxyCodeLine{auto v = min(l, sort\_func);}

\end{DoxyCode}

\end{DoxyParagraph}

\begin{DoxyParams}{Parameters}
{\em l} & the list to sort \\
\hline
{\em f} & a \mbox{\hyperlink{expressions_call_reference}{call reference}} or a \mbox{\hyperlink{expressions_closure}{closure}} that accepts 2 arguments of the data type in the list; the \mbox{\hyperlink{expressions_call_reference}{call reference}} or a \mbox{\hyperlink{expressions_closure}{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\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
the minumum value in a list
\end{DoxyReturn}
\begin{DoxySeeAlso}{See also}
max(list, code) 
\end{DoxySeeAlso}
\mbox{\Hypertarget{group__list__functions_gacb7f83f203b362521f60a2ffeada3658}\label{group__list__functions_gacb7f83f203b362521f60a2ffeada3658}} 
\index{List Functions@{List Functions}!min@{min}}
\index{min@{min}!List Functions@{List Functions}}
\doxysubsubsection{\texorpdfstring{min()}{min()}\hspace{0.1cm}{\footnotesize\ttfamily [4/4]}}
{\footnotesize\ttfamily auto Qore\+::min (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{group__type__conversion__functions_ga9a401e5112c58f63c05e7ee1e15968ef}{list}}$<$ auto $>$}]{l,  }\item[{\mbox{\hyperlink{group__type__conversion__functions_gacf16b4126b795f4b6933ef3425cadae3}{string}}}]{func }\end{DoxyParamCaption})}



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

\begin{DoxyParagraph}{Code Flags\+:}
\mbox{\hyperlink{code_flags_RET_VALUE_ONLY}{RET\+\_\+\+VALUE\+\_\+\+ONLY}}
\end{DoxyParagraph}
\begin{DoxyParagraph}{Example\+:}

\begin{DoxyCode}{0}
\DoxyCodeLine{auto v = min(l, \textcolor{stringliteral}{"{}my\_sort\_function"{}});}

\end{DoxyCode}

\end{DoxyParagraph}

\begin{DoxyParams}{Parameters}
{\em l} & the list to sort \\
\hline
{\em 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\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
the minumum value in a list
\end{DoxyReturn}
\begin{DoxySeeAlso}{See also}
max(list, string) 
\end{DoxySeeAlso}
\mbox{\Hypertarget{group__list__functions_ga0bf214ec2c777032a6078bd979637e69}\label{group__list__functions_ga0bf214ec2c777032a6078bd979637e69}} 
\index{List Functions@{List Functions}!range@{range}}
\index{range@{range}!List Functions@{List Functions}}
\doxysubsubsection{\texorpdfstring{range()}{range()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__type__conversion__functions_ga9a401e5112c58f63c05e7ee1e15968ef}{list}}$<$ \mbox{\hyperlink{group__type__conversion__functions_ga2de8717e92c5f97ccc6511f6062d6502}{int}} $>$ Qore\+::range (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{group__type__conversion__functions_ga2de8717e92c5f97ccc6511f6062d6502}{int}}}]{start,  }\item[{\mbox{\hyperlink{group__type__conversion__functions_ga2de8717e92c5f97ccc6511f6062d6502}{int}}}]{stop,  }\item[{\mbox{\hyperlink{group__type__conversion__functions_ga2de8717e92c5f97ccc6511f6062d6502}{int}}}]{step = {\ttfamily 1} }\end{DoxyParamCaption})}



Returns a list containing an arithmetic progression of integers. 

\begin{DoxyParagraph}{Code Flags\+:}
\mbox{\hyperlink{code_flags_RET_VALUE_ONLY}{RET\+\_\+\+VALUE\+\_\+\+ONLY}}
\end{DoxyParagraph}
\begin{DoxyParagraph}{Example\+:}

\begin{DoxyCode}{0}
\DoxyCodeLine{range(2, 5); \textcolor{comment}{\# (2, 3, 4, 5)}}
\DoxyCodeLine{range(2, -\/2); \textcolor{comment}{\# (2, 1, 0, -\/1, -\/2)}}
\DoxyCodeLine{range(1, 10, 5); \textcolor{comment}{\# (1, 6)}}
\DoxyCodeLine{range(0, 10, 5); \textcolor{comment}{\# (0, 5, 10)}}
\DoxyCodeLine{range(-\/10, 10, 5); \textcolor{comment}{\# (-\/10, -\/5, 0, 5, 10)}}
\DoxyCodeLine{range(10, -\/10, 5); \textcolor{comment}{\# (10, 5, 0, -\/5, -\/10)}}

\end{DoxyCode}

\end{DoxyParagraph}

\begin{DoxyParams}{Parameters}
{\em start} & the initial value \\
\hline
{\em stop} & the upper limit \\
\hline
{\em step} & the step; the default is 1; must be greater than 0; the function throws a {\ttfamily RANGE-\/\+ERROR} exception when this argument is \texorpdfstring{$<$}{<} 1\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
Returns a list containing an arithmetic progression of integers.
\end{DoxyReturn}

\begin{DoxyExceptions}{Exceptions}
{\em RANGE-\/\+ERROR} & this exception is thrown if {\ttfamily step} \texorpdfstring{$<$}{<} 1\\
\hline
\end{DoxyExceptions}
\begin{DoxySeeAlso}{See also}
\mbox{\hyperlink{group__range__functions_gad5b4d3ad3f6c36d2e714bc6ed757a507}{xrange}}
\end{DoxySeeAlso}
\begin{DoxyNote}{Note}
the main difference between \mbox{\hyperlink{group__list__functions_ga0bf214ec2c777032a6078bd979637e69}{range()}} and \mbox{\hyperlink{group__range__functions_gad5b4d3ad3f6c36d2e714bc6ed757a507}{xrange()}} is that range returns real list and xrange returns a \mbox{\hyperlink{class_qore_1_1_range_iterator}{Range\+Iterator}}
\end{DoxyNote}
\begin{DoxySince}{Since}

\begin{DoxyItemize}
\item Qore 0.\+8.\+6
\item Qore 0.\+9.\+5 does not include the upper limit in the range unless \mbox{\hyperlink{parse_directives_broken-range}{\%broken-\/range}} is set 
\end{DoxyItemize}
\end{DoxySince}
\mbox{\Hypertarget{group__list__functions_ga74a1dd2ee35e7ae10f3bccb68b56e9ea}\label{group__list__functions_ga74a1dd2ee35e7ae10f3bccb68b56e9ea}} 
\index{List Functions@{List Functions}!range@{range}}
\index{range@{range}!List Functions@{List Functions}}
\doxysubsubsection{\texorpdfstring{range()}{range()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__type__conversion__functions_ga9a401e5112c58f63c05e7ee1e15968ef}{list}}$<$ \mbox{\hyperlink{group__type__conversion__functions_ga2de8717e92c5f97ccc6511f6062d6502}{int}} $>$ Qore\+::range (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{group__type__conversion__functions_ga2de8717e92c5f97ccc6511f6062d6502}{int}}}]{stop }\end{DoxyParamCaption})}



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

This is an overloaded version of \mbox{\hyperlink{group__list__functions_ga0bf214ec2c777032a6078bd979637e69}{range(int, int, int)}} meaning {\ttfamily range}(0, {\ttfamily stop}, 1)

\begin{DoxyParagraph}{Code Flags\+:}
\mbox{\hyperlink{code_flags_CONSTANT}{CONSTANT}}
\end{DoxyParagraph}
\begin{DoxyParagraph}{Example\+:}

\begin{DoxyCode}{0}
\DoxyCodeLine{range(1); \textcolor{comment}{\# (0, 1)}}
\DoxyCodeLine{range(-\/3); \textcolor{comment}{\# (0, -\/1, -\/2, -\/3)}}

\end{DoxyCode}

\end{DoxyParagraph}

\begin{DoxyParams}{Parameters}
{\em stop} & the final value\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
Returns a list containing an arithmetic progression of integers with start = 0 and step = 1.
\end{DoxyReturn}
\begin{DoxySeeAlso}{See also}
\mbox{\hyperlink{group__range__functions_gad5b4d3ad3f6c36d2e714bc6ed757a507}{xrange}}
\end{DoxySeeAlso}
\begin{DoxyNote}{Note}
the main difference between \mbox{\hyperlink{group__list__functions_ga0bf214ec2c777032a6078bd979637e69}{range()}} and \mbox{\hyperlink{group__range__functions_gad5b4d3ad3f6c36d2e714bc6ed757a507}{xrange()}} is that range returns real list and xrange returns a \mbox{\hyperlink{class_qore_1_1_range_iterator}{Range\+Iterator}}
\end{DoxyNote}
\begin{DoxySince}{Since}

\begin{DoxyItemize}
\item Qore 0.\+8.\+6
\item Qore 0.\+9.\+5 does not include the upper limit in the range unless \mbox{\hyperlink{parse_directives_broken-range}{\%broken-\/range}} is set 
\end{DoxyItemize}
\end{DoxySince}
\mbox{\Hypertarget{group__list__functions_ga8d6317ddd1278a3a8ee255ec160333c3}\label{group__list__functions_ga8d6317ddd1278a3a8ee255ec160333c3}} 
\index{List Functions@{List Functions}!reverse@{reverse}}
\index{reverse@{reverse}!List Functions@{List Functions}}
\doxysubsubsection{\texorpdfstring{reverse()}{reverse()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily nothing Qore\+::reverse (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}



This function variant does nothing at all. 

\begin{DoxyParagraph}{Code Flags\+:}
\mbox{\hyperlink{code_flags_NOOP}{NOOP}}
\end{DoxyParagraph}
It is only included for backwards-\/compatibility with qore prior to version 0.\+8.\+0 for functions that would ignore type errors in arguments \mbox{\Hypertarget{group__list__functions_gadf24f99f9547d317e081f8d26c31decb}\label{group__list__functions_gadf24f99f9547d317e081f8d26c31decb}} 
\index{List Functions@{List Functions}!reverse@{reverse}}
\index{reverse@{reverse}!List Functions@{List Functions}}
\doxysubsubsection{\texorpdfstring{reverse()}{reverse()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__type__conversion__functions_ga9a401e5112c58f63c05e7ee1e15968ef}{list}}$<$ auto $>$ Qore\+::reverse (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{group__type__conversion__functions_ga9a401e5112c58f63c05e7ee1e15968ef}{list}}$<$ auto $>$}]{l }\end{DoxyParamCaption})}



Reverses a list and returns the new list. 

\begin{DoxyParagraph}{Code Flags\+:}
\mbox{\hyperlink{code_flags_CONSTANT}{CONSTANT}}
\end{DoxyParagraph}
\begin{DoxyParagraph}{Example\+:}

\begin{DoxyCode}{0}
\DoxyCodeLine{list<auto> nl = reverse(l);}

\end{DoxyCode}

\end{DoxyParagraph}

\begin{DoxyParams}{Parameters}
{\em l} & the list to reverse\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
the given list with all elements in reverse order
\end{DoxyReturn}
\begin{DoxySeeAlso}{See also}
reverse(string) 
\end{DoxySeeAlso}
\mbox{\Hypertarget{group__list__functions_gaff8cac5bd5ffb29fb750e273e4e8fe92}\label{group__list__functions_gaff8cac5bd5ffb29fb750e273e4e8fe92}} 
\index{List Functions@{List Functions}!sort@{sort}}
\index{sort@{sort}!List Functions@{List Functions}}
\doxysubsubsection{\texorpdfstring{sort()}{sort()}\hspace{0.1cm}{\footnotesize\ttfamily [1/4]}}
{\footnotesize\ttfamily auto Qore\+::sort (\begin{DoxyParamCaption}\item[{auto}]{arg }\end{DoxyParamCaption})}



This function variant does nothing at all. 

\begin{DoxyParagraph}{Code Flags\+:}
\mbox{\hyperlink{code_flags_NOOP}{NOOP}}
\end{DoxyParagraph}
it is only included for backwards-\/compatibility with qore prior to version 0.\+8.\+0 for functions that would ignore type errors in arguments \mbox{\Hypertarget{group__list__functions_ga7bc9cde41c96aae005878b9ba8b50996}\label{group__list__functions_ga7bc9cde41c96aae005878b9ba8b50996}} 
\index{List Functions@{List Functions}!sort@{sort}}
\index{sort@{sort}!List Functions@{List Functions}}
\doxysubsubsection{\texorpdfstring{sort()}{sort()}\hspace{0.1cm}{\footnotesize\ttfamily [2/4]}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__type__conversion__functions_ga9a401e5112c58f63c05e7ee1e15968ef}{list}}$<$ auto $>$ Qore\+::sort (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{group__type__conversion__functions_ga9a401e5112c58f63c05e7ee1e15968ef}{list}}$<$ auto $>$}]{l }\end{DoxyParamCaption})}



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

This variant will only sort basic data types

\begin{DoxyParagraph}{Code Flags\+:}
\mbox{\hyperlink{code_flags_CONSTANT}{CONSTANT}}
\end{DoxyParagraph}
\begin{DoxyParagraph}{Example\+:}

\begin{DoxyCode}{0}
\DoxyCodeLine{list<auto> nl = sort(l);}

\end{DoxyCode}

\end{DoxyParagraph}

\begin{DoxyParams}{Parameters}
{\em l} & the list to sort\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
the sorted list
\end{DoxyReturn}
\begin{DoxyNote}{Note}
This function uses an internal recursive quicksort algorithm that uses excessive stack space with large lists, therefore when the list size is \texorpdfstring{$>$}{>} 1000 element, mergesort is used instead, which is equivalent to \mbox{\hyperlink{group__list__functions_gad03629b1133f3a6b47a2f33792801dbf}{sort\+\_\+stable()}}
\end{DoxyNote}
\begin{DoxySeeAlso}{See also}

\begin{DoxyItemize}
\item sort\+Stable(list)
\item sort\+Descending\+Stable(list)
\item sort\+Descending(list) 
\end{DoxyItemize}
\end{DoxySeeAlso}
\mbox{\Hypertarget{group__list__functions_ga203d9ab4f39a7779dcb666f6f9477ffb}\label{group__list__functions_ga203d9ab4f39a7779dcb666f6f9477ffb}} 
\index{List Functions@{List Functions}!sort@{sort}}
\index{sort@{sort}!List Functions@{List Functions}}
\doxysubsubsection{\texorpdfstring{sort()}{sort()}\hspace{0.1cm}{\footnotesize\ttfamily [3/4]}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__type__conversion__functions_ga9a401e5112c58f63c05e7ee1e15968ef}{list}}$<$ auto $>$ Qore\+::sort (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{group__type__conversion__functions_ga9a401e5112c58f63c05e7ee1e15968ef}{list}}$<$ auto $>$}]{l,  }\item[{code}]{f }\end{DoxyParamCaption})}



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

Accepts a \mbox{\hyperlink{expressions_call_reference}{call reference}} or a \mbox{\hyperlink{expressions_closure}{closure}} to use to sort complex data types or to give a special sort order

\begin{DoxyParagraph}{Code Flags\+:}
\mbox{\hyperlink{code_flags_RET_VALUE_ONLY}{RET\+\_\+\+VALUE\+\_\+\+ONLY}}
\end{DoxyParagraph}
\begin{DoxyParagraph}{Example\+:}

\begin{DoxyCode}{0}
\DoxyCodeLine{code sort\_func = int sub (hash l, hash r) \{ \textcolor{keywordflow}{return} l.id <=> r.id; \};}
\DoxyCodeLine{list<auto> nl = sort(l, sort\_func);}

\end{DoxyCode}

\end{DoxyParagraph}

\begin{DoxyParams}{Parameters}
{\em l} & the list to sort \\
\hline
{\em f} & a \mbox{\hyperlink{expressions_call_reference}{call reference}} or a \mbox{\hyperlink{expressions_closure}{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\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
the sorted list
\end{DoxyReturn}
\begin{DoxyNote}{Note}
This function uses an internal recursive quicksort algorithm that uses excessive stack space with large lists, therefore when the list size is \texorpdfstring{$>$}{>} 1000 element, mergesort is used instead, which is equivalent to \mbox{\hyperlink{group__list__functions_gad03629b1133f3a6b47a2f33792801dbf}{sort\+\_\+stable()}}
\end{DoxyNote}
\begin{DoxySeeAlso}{See also}

\begin{DoxyItemize}
\item sort\+Stable(list, code)
\item sort\+Descending\+Stable(list, code)
\item sort\+Descending(list, code) 
\end{DoxyItemize}
\end{DoxySeeAlso}
\mbox{\Hypertarget{group__list__functions_gab5f32852ee7c739a46136859a28edaa8}\label{group__list__functions_gab5f32852ee7c739a46136859a28edaa8}} 
\index{List Functions@{List Functions}!sort@{sort}}
\index{sort@{sort}!List Functions@{List Functions}}
\doxysubsubsection{\texorpdfstring{sort()}{sort()}\hspace{0.1cm}{\footnotesize\ttfamily [4/4]}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__type__conversion__functions_ga9a401e5112c58f63c05e7ee1e15968ef}{list}}$<$ auto $>$ Qore\+::sort (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{group__type__conversion__functions_ga9a401e5112c58f63c05e7ee1e15968ef}{list}}$<$ auto $>$}]{l,  }\item[{\mbox{\hyperlink{group__type__conversion__functions_gacf16b4126b795f4b6933ef3425cadae3}{string}}}]{func }\end{DoxyParamCaption})}



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

\begin{DoxyParagraph}{Code Flags\+:}
\mbox{\hyperlink{code_flags_RET_VALUE_ONLY}{RET\+\_\+\+VALUE\+\_\+\+ONLY}}
\end{DoxyParagraph}
\begin{DoxyParagraph}{Example\+:}

\begin{DoxyCode}{0}
\DoxyCodeLine{list<auto> nl = sort(l, \textcolor{stringliteral}{"{}my\_sort\_function"{}});}

\end{DoxyCode}

\end{DoxyParagraph}

\begin{DoxyParams}{Parameters}
{\em l} & the list to sort \\
\hline
{\em 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\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
the sorted list
\end{DoxyReturn}
\begin{DoxyNote}{Note}
This function uses an internal recursive quicksort algorithm that uses excessive stack space with large lists, therefore when the list size is \texorpdfstring{$>$}{>} 1000 element, mergesort is used instead, which is equivalent to \mbox{\hyperlink{group__list__functions_gad03629b1133f3a6b47a2f33792801dbf}{sort\+\_\+stable()}}
\end{DoxyNote}
\begin{DoxySeeAlso}{See also}

\begin{DoxyItemize}
\item sort\+Stable(list, string)
\item sort\+Descending\+Stable(list, string)
\item sort\+Descending(list, string) 
\end{DoxyItemize}
\end{DoxySeeAlso}
\mbox{\Hypertarget{group__list__functions_ga0149391f4fb2c97dd4ad2080f9240753}\label{group__list__functions_ga0149391f4fb2c97dd4ad2080f9240753}} 
\index{List Functions@{List Functions}!sort\_descending@{sort\_descending}}
\index{sort\_descending@{sort\_descending}!List Functions@{List Functions}}
\doxysubsubsection{\texorpdfstring{sort\_descending()}{sort\_descending()}\hspace{0.1cm}{\footnotesize\ttfamily [1/4]}}
{\footnotesize\ttfamily auto Qore\+::sort\+\_\+descending (\begin{DoxyParamCaption}\item[{auto}]{arg }\end{DoxyParamCaption})}



This function variant does nothing at all. 

\begin{DoxyParagraph}{Code Flags\+:}
\mbox{\hyperlink{code_flags_NOOP}{NOOP}}
\end{DoxyParagraph}
It is only included for backwards-\/compatibility with qore prior to version 0.\+8.\+0 for functions that would ignore type errors in arguments \mbox{\Hypertarget{group__list__functions_ga6af37f0b528729df1a88b614727d7894}\label{group__list__functions_ga6af37f0b528729df1a88b614727d7894}} 
\index{List Functions@{List Functions}!sort\_descending@{sort\_descending}}
\index{sort\_descending@{sort\_descending}!List Functions@{List Functions}}
\doxysubsubsection{\texorpdfstring{sort\_descending()}{sort\_descending()}\hspace{0.1cm}{\footnotesize\ttfamily [2/4]}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__type__conversion__functions_ga9a401e5112c58f63c05e7ee1e15968ef}{list}}$<$ auto $>$ Qore\+::sort\+\_\+descending (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{group__type__conversion__functions_ga9a401e5112c58f63c05e7ee1e15968ef}{list}}$<$ auto $>$}]{l }\end{DoxyParamCaption})}



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

This variant will only sort basic data types

\begin{DoxyParagraph}{Code Flags\+:}
\mbox{\hyperlink{code_flags_CONSTANT}{CONSTANT}}
\end{DoxyParagraph}
\begin{DoxyParagraph}{Example\+:}

\begin{DoxyCode}{0}
\DoxyCodeLine{list<auto> nl = sort\_descending(l);}

\end{DoxyCode}

\end{DoxyParagraph}

\begin{DoxyParams}{Parameters}
{\em l} & the list to sort\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
the sorted list
\end{DoxyReturn}
\begin{DoxyNote}{Note}
This function uses an internal recursive quicksort algorithm that uses excessive stack space with large lists, therefore when the list size is \texorpdfstring{$>$}{>} 1000 element, mergesort is used instead, which is equivalent to \mbox{\hyperlink{group__list__functions_gad03629b1133f3a6b47a2f33792801dbf}{sort\+\_\+stable()}}
\end{DoxyNote}
\begin{DoxySeeAlso}{See also}

\begin{DoxyItemize}
\item sort(list)
\item sort\+Descending\+Stable(list)
\item sort\+Stable(list)
\end{DoxyItemize}
\end{DoxySeeAlso}
\begin{DoxySince}{Since}
Qore 0.\+8.\+12 as a replacement for deprecated camel-\/case \mbox{\hyperlink{group__list__functions_gad9e205ca0a43f52a1388611b54521c19}{sort\+Descending()}} 
\end{DoxySince}
\mbox{\Hypertarget{group__list__functions_gaf1a4d22195c41fbae7a177f8033ab83b}\label{group__list__functions_gaf1a4d22195c41fbae7a177f8033ab83b}} 
\index{List Functions@{List Functions}!sort\_descending@{sort\_descending}}
\index{sort\_descending@{sort\_descending}!List Functions@{List Functions}}
\doxysubsubsection{\texorpdfstring{sort\_descending()}{sort\_descending()}\hspace{0.1cm}{\footnotesize\ttfamily [3/4]}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__type__conversion__functions_ga9a401e5112c58f63c05e7ee1e15968ef}{list}}$<$ auto $>$ Qore\+::sort\+\_\+descending (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{group__type__conversion__functions_ga9a401e5112c58f63c05e7ee1e15968ef}{list}}$<$ auto $>$}]{l,  }\item[{code}]{f }\end{DoxyParamCaption})}



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

Accepts a \mbox{\hyperlink{expressions_call_reference}{call reference}} or a \mbox{\hyperlink{expressions_closure}{closure}} to use to sort complex data types or to give a special sort order

\begin{DoxyParagraph}{Code Flags\+:}
\mbox{\hyperlink{code_flags_RET_VALUE_ONLY}{RET\+\_\+\+VALUE\+\_\+\+ONLY}}
\end{DoxyParagraph}
\begin{DoxyParagraph}{Example\+:}

\begin{DoxyCode}{0}
\DoxyCodeLine{code sort\_func = int sub (hash l, hash r) \{ \textcolor{keywordflow}{return} l.id <=> r.id; \};}
\DoxyCodeLine{list<auto> nl = sort\_descending(l, sort\_func);}

\end{DoxyCode}

\end{DoxyParagraph}

\begin{DoxyParams}{Parameters}
{\em l} & the list to sort \\
\hline
{\em f} & a \mbox{\hyperlink{expressions_call_reference}{call reference}} or a \mbox{\hyperlink{expressions_closure}{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\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
the sorted list
\end{DoxyReturn}
\begin{DoxyNote}{Note}
This function uses an internal recursive quicksort algorithm that uses excessive stack space with large lists, therefore when the list size is \texorpdfstring{$>$}{>} 1000 element, mergesort is used instead, which is equivalent to \mbox{\hyperlink{group__list__functions_gad03629b1133f3a6b47a2f33792801dbf}{sort\+\_\+stable()}}
\end{DoxyNote}
\begin{DoxySeeAlso}{See also}

\begin{DoxyItemize}
\item sort\+\_\+stable(list, code)
\item sort\+\_\+descending\+Stable(list, code)
\item sort(list, code)
\end{DoxyItemize}
\end{DoxySeeAlso}
\begin{DoxySince}{Since}
Qore 0.\+8.\+12 as a replacement for deprecated camel-\/case \mbox{\hyperlink{group__list__functions_gad9e205ca0a43f52a1388611b54521c19}{sort\+Descending()}} 
\end{DoxySince}
\mbox{\Hypertarget{group__list__functions_gaaa5c91fb80b8fbb196deea9706c53637}\label{group__list__functions_gaaa5c91fb80b8fbb196deea9706c53637}} 
\index{List Functions@{List Functions}!sort\_descending@{sort\_descending}}
\index{sort\_descending@{sort\_descending}!List Functions@{List Functions}}
\doxysubsubsection{\texorpdfstring{sort\_descending()}{sort\_descending()}\hspace{0.1cm}{\footnotesize\ttfamily [4/4]}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__type__conversion__functions_ga9a401e5112c58f63c05e7ee1e15968ef}{list}}$<$ auto $>$ Qore\+::sort\+\_\+descending (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{group__type__conversion__functions_ga9a401e5112c58f63c05e7ee1e15968ef}{list}}$<$ auto $>$}]{l,  }\item[{\mbox{\hyperlink{group__type__conversion__functions_gacf16b4126b795f4b6933ef3425cadae3}{string}}}]{func }\end{DoxyParamCaption})}



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

\begin{DoxyParagraph}{Code Flags\+:}
\mbox{\hyperlink{code_flags_CONSTANT}{CONSTANT}}
\end{DoxyParagraph}
\begin{DoxyParagraph}{Example\+:}

\begin{DoxyCode}{0}
\DoxyCodeLine{list<auto> nl = sort\_descending(l, \textcolor{stringliteral}{"{}my\_sort\_function"{}});}

\end{DoxyCode}

\end{DoxyParagraph}

\begin{DoxyParams}{Parameters}
{\em l} & the list to sort \\
\hline
{\em 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\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
the sorted list
\end{DoxyReturn}
\begin{DoxyNote}{Note}
This function uses an internal recursive quicksort algorithm that uses excessive stack space with large lists, therefore when the list size is \texorpdfstring{$>$}{>} 1000 element, mergesort is used instead, which is equivalent to \mbox{\hyperlink{group__list__functions_gad03629b1133f3a6b47a2f33792801dbf}{sort\+\_\+stable()}}
\end{DoxyNote}
\begin{DoxySeeAlso}{See also}

\begin{DoxyItemize}
\item sort\+\_\+stable(list, string)
\item sort\+\_\+descending\+Stable(list, string)
\item sort(list, string)
\end{DoxyItemize}
\end{DoxySeeAlso}
\begin{DoxySince}{Since}
Qore 0.\+8.\+12 as a replacement for deprecated camel-\/case \mbox{\hyperlink{group__list__functions_gad9e205ca0a43f52a1388611b54521c19}{sort\+Descending()}} 
\end{DoxySince}
\mbox{\Hypertarget{group__list__functions_ga59bf2466a7bd64db585ad1b2b5f7ae7d}\label{group__list__functions_ga59bf2466a7bd64db585ad1b2b5f7ae7d}} 
\index{List Functions@{List Functions}!sort\_descending\_stable@{sort\_descending\_stable}}
\index{sort\_descending\_stable@{sort\_descending\_stable}!List Functions@{List Functions}}
\doxysubsubsection{\texorpdfstring{sort\_descending\_stable()}{sort\_descending\_stable()}\hspace{0.1cm}{\footnotesize\ttfamily [1/4]}}
{\footnotesize\ttfamily auto Qore\+::sort\+\_\+descending\+\_\+stable (\begin{DoxyParamCaption}\item[{auto}]{arg }\end{DoxyParamCaption})}



This function variant does nothing at all. 

\begin{DoxyParagraph}{Code Flags\+:}
\mbox{\hyperlink{code_flags_NOOP}{NOOP}}
\end{DoxyParagraph}
It is only included for backwards-\/compatibility with qore prior to version 0.\+8.\+0 for functions that would ignore type errors in arguments \mbox{\Hypertarget{group__list__functions_ga37d7c190707fdb7d88f72c2eb0c7bad8}\label{group__list__functions_ga37d7c190707fdb7d88f72c2eb0c7bad8}} 
\index{List Functions@{List Functions}!sort\_descending\_stable@{sort\_descending\_stable}}
\index{sort\_descending\_stable@{sort\_descending\_stable}!List Functions@{List Functions}}
\doxysubsubsection{\texorpdfstring{sort\_descending\_stable()}{sort\_descending\_stable()}\hspace{0.1cm}{\footnotesize\ttfamily [2/4]}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__type__conversion__functions_ga9a401e5112c58f63c05e7ee1e15968ef}{list}}$<$ auto $>$ Qore\+::sort\+\_\+descending\+\_\+stable (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{group__type__conversion__functions_ga9a401e5112c58f63c05e7ee1e15968ef}{list}}$<$ auto $>$}]{l }\end{DoxyParamCaption})}



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

This variant will only sort basic data types

\begin{DoxyParagraph}{Code Flags\+:}
\mbox{\hyperlink{code_flags_CONSTANT}{CONSTANT}}
\end{DoxyParagraph}
\begin{DoxyParagraph}{Example\+:}

\begin{DoxyCode}{0}
\DoxyCodeLine{list<auto> nl = sort\_descending\_stable(l);}

\end{DoxyCode}

\end{DoxyParagraph}

\begin{DoxyParams}{Parameters}
{\em l} & the list to sort\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
the sorted list
\end{DoxyReturn}
\begin{DoxySeeAlso}{See also}

\begin{DoxyItemize}
\item sort\+\_\+stable(list, code)
\item sort\+\_\+descending\+\_\+stable(list, code)
\item sort(list, code)
\end{DoxyItemize}
\end{DoxySeeAlso}
\begin{DoxySince}{Since}
Qore 0.\+8.\+12 as a replacement for deprecated camel-\/case \mbox{\hyperlink{group__list__functions_gacd07eea87f385a0bb8764a9fa5b47075}{sort\+Descending\+Stable()}} 
\end{DoxySince}
\mbox{\Hypertarget{group__list__functions_ga624b46ceb80f6e86d867d0e3db79b346}\label{group__list__functions_ga624b46ceb80f6e86d867d0e3db79b346}} 
\index{List Functions@{List Functions}!sort\_descending\_stable@{sort\_descending\_stable}}
\index{sort\_descending\_stable@{sort\_descending\_stable}!List Functions@{List Functions}}
\doxysubsubsection{\texorpdfstring{sort\_descending\_stable()}{sort\_descending\_stable()}\hspace{0.1cm}{\footnotesize\ttfamily [3/4]}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__type__conversion__functions_ga9a401e5112c58f63c05e7ee1e15968ef}{list}}$<$ auto $>$ Qore\+::sort\+\_\+descending\+\_\+stable (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{group__type__conversion__functions_ga9a401e5112c58f63c05e7ee1e15968ef}{list}}$<$ auto $>$}]{l,  }\item[{code}]{f }\end{DoxyParamCaption})}



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

Accepts a \mbox{\hyperlink{expressions_call_reference}{call reference}} or a \mbox{\hyperlink{expressions_closure}{closure}} to use to sort complex data types or to give a special sort order

\begin{DoxyParagraph}{Code Flags\+:}
\mbox{\hyperlink{code_flags_RET_VALUE_ONLY}{RET\+\_\+\+VALUE\+\_\+\+ONLY}}
\end{DoxyParagraph}
\begin{DoxyParagraph}{Example\+:}

\begin{DoxyCode}{0}
\DoxyCodeLine{code sort\_func = int sub (hash l, hash r) \{ \textcolor{keywordflow}{return} l.id <=> r.id; \};}
\DoxyCodeLine{list<auto> nl = sort\_descending\_stable(l, sort\_func);}

\end{DoxyCode}

\end{DoxyParagraph}

\begin{DoxyParams}{Parameters}
{\em l} & the list to sort \\
\hline
{\em f} & a \mbox{\hyperlink{expressions_call_reference}{call reference}} or a \mbox{\hyperlink{expressions_closure}{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\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
the sorted list
\end{DoxyReturn}
\begin{DoxySeeAlso}{See also}

\begin{DoxyItemize}
\item sort\+\_\+stable(list, code)
\item sort\+\_\+descending\+\_\+stable(list, code)
\item sort(list, code)
\end{DoxyItemize}
\end{DoxySeeAlso}
\begin{DoxySince}{Since}
Qore 0.\+8.\+12 as a replacement for deprecated camel-\/case \mbox{\hyperlink{group__list__functions_gacd07eea87f385a0bb8764a9fa5b47075}{sort\+Descending\+Stable()}} 
\end{DoxySince}
\mbox{\Hypertarget{group__list__functions_ga30e016ca1469bd2502df83fb07e2bd88}\label{group__list__functions_ga30e016ca1469bd2502df83fb07e2bd88}} 
\index{List Functions@{List Functions}!sort\_descending\_stable@{sort\_descending\_stable}}
\index{sort\_descending\_stable@{sort\_descending\_stable}!List Functions@{List Functions}}
\doxysubsubsection{\texorpdfstring{sort\_descending\_stable()}{sort\_descending\_stable()}\hspace{0.1cm}{\footnotesize\ttfamily [4/4]}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__type__conversion__functions_ga9a401e5112c58f63c05e7ee1e15968ef}{list}}$<$ auto $>$ Qore\+::sort\+\_\+descending\+\_\+stable (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{group__type__conversion__functions_ga9a401e5112c58f63c05e7ee1e15968ef}{list}}$<$ auto $>$}]{l,  }\item[{\mbox{\hyperlink{group__type__conversion__functions_gacf16b4126b795f4b6933ef3425cadae3}{string}}}]{func }\end{DoxyParamCaption})}



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

\begin{DoxyParagraph}{Code Flags\+:}
\mbox{\hyperlink{code_flags_RET_VALUE_ONLY}{RET\+\_\+\+VALUE\+\_\+\+ONLY}}
\end{DoxyParagraph}
\begin{DoxyParagraph}{Example\+:}

\begin{DoxyCode}{0}
\DoxyCodeLine{list<auto> nl = sort\_descending\_stable(l, \textcolor{stringliteral}{"{}my\_sort\_function"{}});}

\end{DoxyCode}

\end{DoxyParagraph}

\begin{DoxyParams}{Parameters}
{\em l} & the list to sort \\
\hline
{\em 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\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
the sorted list
\end{DoxyReturn}
\begin{DoxySeeAlso}{See also}

\begin{DoxyItemize}
\item sort\+\_\+stable(list, code)
\item sort\+\_\+descending\+\_\+stable(list, code)
\item sort(list, code)
\end{DoxyItemize}
\end{DoxySeeAlso}
\begin{DoxySince}{Since}
Qore 0.\+8.\+12 as a replacement for deprecated camel-\/case \mbox{\hyperlink{group__list__functions_gacd07eea87f385a0bb8764a9fa5b47075}{sort\+Descending\+Stable()}} 
\end{DoxySince}
\mbox{\Hypertarget{group__list__functions_gad03629b1133f3a6b47a2f33792801dbf}\label{group__list__functions_gad03629b1133f3a6b47a2f33792801dbf}} 
\index{List Functions@{List Functions}!sort\_stable@{sort\_stable}}
\index{sort\_stable@{sort\_stable}!List Functions@{List Functions}}
\doxysubsubsection{\texorpdfstring{sort\_stable()}{sort\_stable()}\hspace{0.1cm}{\footnotesize\ttfamily [1/4]}}
{\footnotesize\ttfamily auto Qore\+::sort\+\_\+stable (\begin{DoxyParamCaption}\item[{auto}]{arg }\end{DoxyParamCaption})}



This function variant does nothing at all. 

\begin{DoxyParagraph}{Code Flags\+:}
\mbox{\hyperlink{code_flags_NOOP}{NOOP}}
\end{DoxyParagraph}
It is only included for backwards-\/compatibility with qore prior to version 0.\+8.\+0 for functions that would ignore type errors in arguments \mbox{\Hypertarget{group__list__functions_ga0cee8fcfee6501a7de9510c6a89fbfb0}\label{group__list__functions_ga0cee8fcfee6501a7de9510c6a89fbfb0}} 
\index{List Functions@{List Functions}!sort\_stable@{sort\_stable}}
\index{sort\_stable@{sort\_stable}!List Functions@{List Functions}}
\doxysubsubsection{\texorpdfstring{sort\_stable()}{sort\_stable()}\hspace{0.1cm}{\footnotesize\ttfamily [2/4]}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__type__conversion__functions_ga9a401e5112c58f63c05e7ee1e15968ef}{list}}$<$ auto $>$ Qore\+::sort\+\_\+stable (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{group__type__conversion__functions_ga9a401e5112c58f63c05e7ee1e15968ef}{list}}$<$ auto $>$}]{l }\end{DoxyParamCaption})}



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

This variant will only sort basic data types

\begin{DoxyParagraph}{Code Flags\+:}
\mbox{\hyperlink{code_flags_CONSTANT}{CONSTANT}}
\end{DoxyParagraph}
\begin{DoxyParagraph}{Example\+:}

\begin{DoxyCode}{0}
\DoxyCodeLine{list<auto> nl = sort\_stable(l);}

\end{DoxyCode}

\end{DoxyParagraph}

\begin{DoxyParams}{Parameters}
{\em l} & the list to sort\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
the sorted list
\end{DoxyReturn}
\begin{DoxySeeAlso}{See also}

\begin{DoxyItemize}
\item sort(list, string)
\item sort\+\_\+descending(list, string)
\item sort\+\_\+descending\+\_\+stable(list, string)
\end{DoxyItemize}
\end{DoxySeeAlso}
\begin{DoxySince}{Since}
Qore 0.\+8.\+12 as a replacement for deprecated camel-\/case \mbox{\hyperlink{group__list__functions_ga6202469e6119631474b685952cefe11f}{sort\+Stable()}} 
\end{DoxySince}
\mbox{\Hypertarget{group__list__functions_ga776f8d8c6883c0aa792031c095cf8fba}\label{group__list__functions_ga776f8d8c6883c0aa792031c095cf8fba}} 
\index{List Functions@{List Functions}!sort\_stable@{sort\_stable}}
\index{sort\_stable@{sort\_stable}!List Functions@{List Functions}}
\doxysubsubsection{\texorpdfstring{sort\_stable()}{sort\_stable()}\hspace{0.1cm}{\footnotesize\ttfamily [3/4]}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__type__conversion__functions_ga9a401e5112c58f63c05e7ee1e15968ef}{list}}$<$ auto $>$ Qore\+::sort\+\_\+stable (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{group__type__conversion__functions_ga9a401e5112c58f63c05e7ee1e15968ef}{list}}$<$ auto $>$}]{l,  }\item[{code}]{f }\end{DoxyParamCaption})}



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

Accepts a \mbox{\hyperlink{expressions_call_reference}{call reference}} or a \mbox{\hyperlink{expressions_closure}{closure}} to use to sort complex data types or to give a special sort order

\begin{DoxyParagraph}{Code Flags\+:}
\mbox{\hyperlink{code_flags_RET_VALUE_ONLY}{RET\+\_\+\+VALUE\+\_\+\+ONLY}}
\end{DoxyParagraph}
\begin{DoxyParagraph}{Example\+:}

\begin{DoxyCode}{0}
\DoxyCodeLine{code sort\_func = int sub (hash<auto> l, hash<auto> r) \{ \textcolor{keywordflow}{return} l.id <=> r.id; \};}
\DoxyCodeLine{list<auto> nl = sort\_stable(l, sort\_func);}

\end{DoxyCode}

\end{DoxyParagraph}

\begin{DoxyParams}{Parameters}
{\em l} & the list to sort \\
\hline
{\em f} & a \mbox{\hyperlink{expressions_call_reference}{call reference}} or a \mbox{\hyperlink{expressions_closure}{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\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
the sorted list
\end{DoxyReturn}
\begin{DoxySeeAlso}{See also}

\begin{DoxyItemize}
\item sort(list, string)
\item sort\+\_\+descending(list, string)
\item sort\+\_\+descending\+\_\+stable(list, string)
\end{DoxyItemize}
\end{DoxySeeAlso}
\begin{DoxySince}{Since}
Qore 0.\+8.\+12 as a replacement for deprecated camel-\/case \mbox{\hyperlink{group__list__functions_ga6202469e6119631474b685952cefe11f}{sort\+Stable()}} 
\end{DoxySince}
\mbox{\Hypertarget{group__list__functions_gacda245ada866f057bcce740031b66245}\label{group__list__functions_gacda245ada866f057bcce740031b66245}} 
\index{List Functions@{List Functions}!sort\_stable@{sort\_stable}}
\index{sort\_stable@{sort\_stable}!List Functions@{List Functions}}
\doxysubsubsection{\texorpdfstring{sort\_stable()}{sort\_stable()}\hspace{0.1cm}{\footnotesize\ttfamily [4/4]}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__type__conversion__functions_ga9a401e5112c58f63c05e7ee1e15968ef}{list}}$<$ auto $>$ Qore\+::sort\+\_\+stable (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{group__type__conversion__functions_ga9a401e5112c58f63c05e7ee1e15968ef}{list}}$<$ auto $>$}]{l,  }\item[{\mbox{\hyperlink{group__type__conversion__functions_gacf16b4126b795f4b6933ef3425cadae3}{string}}}]{func }\end{DoxyParamCaption})}



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

\begin{DoxyParagraph}{Code Flags\+:}
\mbox{\hyperlink{code_flags_RET_VALUE_ONLY}{RET\+\_\+\+VALUE\+\_\+\+ONLY}}
\end{DoxyParagraph}
\begin{DoxyParagraph}{Example\+:}

\begin{DoxyCode}{0}
\DoxyCodeLine{list<auto> nl = sort\_stable(l, \textcolor{stringliteral}{"{}my\_sort\_function"{}});}

\end{DoxyCode}

\end{DoxyParagraph}

\begin{DoxyParams}{Parameters}
{\em l} & the list to sort \\
\hline
{\em 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\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
the sorted list
\end{DoxyReturn}
\begin{DoxySeeAlso}{See also}

\begin{DoxyItemize}
\item sort(list, string)
\item sort\+\_\+descending(list, string)
\item sort\+\_\+descending\+\_\+stable(list, string)
\end{DoxyItemize}
\end{DoxySeeAlso}
\begin{DoxySince}{Since}
Qore 0.\+8.\+12 as a replacement for deprecated camel-\/case \mbox{\hyperlink{group__list__functions_ga6202469e6119631474b685952cefe11f}{sort\+Stable()}} 
\end{DoxySince}
\mbox{\Hypertarget{group__list__functions_gad9e205ca0a43f52a1388611b54521c19}\label{group__list__functions_gad9e205ca0a43f52a1388611b54521c19}} 
\index{List Functions@{List Functions}!sortDescending@{sortDescending}}
\index{sortDescending@{sortDescending}!List Functions@{List Functions}}
\doxysubsubsection{\texorpdfstring{sortDescending()}{sortDescending()}\hspace{0.1cm}{\footnotesize\ttfamily [1/4]}}
{\footnotesize\ttfamily auto Qore\+::sort\+Descending (\begin{DoxyParamCaption}\item[{auto}]{arg }\end{DoxyParamCaption})}



This function variant does nothing at all. 

\begin{DoxyParagraph}{Code Flags\+:}
\mbox{\hyperlink{code_flags_NOOP}{NOOP}}, \mbox{\hyperlink{code_flags_DEPRECATED}{DEPRECATED}}
\end{DoxyParagraph}
It is only included for backwards-\/compatibility with qore prior to version 0.\+8.\+0 for functions that would ignore type errors in arguments \mbox{\Hypertarget{group__list__functions_gad54b8a02d2c883f047e664c49211bf11}\label{group__list__functions_gad54b8a02d2c883f047e664c49211bf11}} 
\index{List Functions@{List Functions}!sortDescending@{sortDescending}}
\index{sortDescending@{sortDescending}!List Functions@{List Functions}}
\doxysubsubsection{\texorpdfstring{sortDescending()}{sortDescending()}\hspace{0.1cm}{\footnotesize\ttfamily [2/4]}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__type__conversion__functions_ga9a401e5112c58f63c05e7ee1e15968ef}{list}}$<$ auto $>$ Qore\+::sort\+Descending (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{group__type__conversion__functions_ga9a401e5112c58f63c05e7ee1e15968ef}{list}}$<$ auto $>$}]{l }\end{DoxyParamCaption})}



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

This variant will only sort basic data types

\begin{DoxyParagraph}{Code Flags\+:}
\mbox{\hyperlink{code_flags_CONSTANT}{CONSTANT}}, \mbox{\hyperlink{code_flags_DEPRECATED}{DEPRECATED}}
\end{DoxyParagraph}

\begin{DoxyParams}{Parameters}
{\em l} & the list to sort\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
the sorted list
\end{DoxyReturn}
\begin{DoxyNote}{Note}
This function uses an internal recursive quicksort algorithm that uses excessive stack space with large lists, therefore when the list size is \texorpdfstring{$>$}{>} 1000 element, mergesort is used instead, which is equivalent to \mbox{\hyperlink{group__list__functions_gad03629b1133f3a6b47a2f33792801dbf}{sort\+\_\+stable()}}
\end{DoxyNote}
\begin{DoxySeeAlso}{See also}

\begin{DoxyItemize}
\item sort(list)
\item sort\+Descending\+Stable(list)
\item sort\+Stable(list)
\end{DoxyItemize}
\end{DoxySeeAlso}
\begin{DoxyRefDesc}{Deprecated}
\item[\mbox{\hyperlink{deprecated__deprecated000028}{Deprecated}}]use \mbox{\hyperlink{group__list__functions_ga0149391f4fb2c97dd4ad2080f9240753}{sort\+\_\+descending()}}; camel-\/case function names were deprecated in Qore 0.\+8.\+12 \end{DoxyRefDesc}
\mbox{\Hypertarget{group__list__functions_ga0c5c62c898a87542db7fc6f24b4f5302}\label{group__list__functions_ga0c5c62c898a87542db7fc6f24b4f5302}} 
\index{List Functions@{List Functions}!sortDescending@{sortDescending}}
\index{sortDescending@{sortDescending}!List Functions@{List Functions}}
\doxysubsubsection{\texorpdfstring{sortDescending()}{sortDescending()}\hspace{0.1cm}{\footnotesize\ttfamily [3/4]}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__type__conversion__functions_ga9a401e5112c58f63c05e7ee1e15968ef}{list}}$<$ auto $>$ Qore\+::sort\+Descending (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{group__type__conversion__functions_ga9a401e5112c58f63c05e7ee1e15968ef}{list}}$<$ auto $>$}]{l,  }\item[{code}]{f }\end{DoxyParamCaption})}



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

Accepts a \mbox{\hyperlink{expressions_call_reference}{call reference}} or a \mbox{\hyperlink{expressions_closure}{closure}} to use to sort complex data types or to give a special sort order

\begin{DoxyParagraph}{Code Flags\+:}
\mbox{\hyperlink{code_flags_RET_VALUE_ONLY}{RET\+\_\+\+VALUE\+\_\+\+ONLY}}, \mbox{\hyperlink{code_flags_DEPRECATED}{DEPRECATED}}
\end{DoxyParagraph}

\begin{DoxyParams}{Parameters}
{\em l} & the list to sort \\
\hline
{\em f} & a \mbox{\hyperlink{expressions_call_reference}{call reference}} or a \mbox{\hyperlink{expressions_closure}{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\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
the sorted list
\end{DoxyReturn}
\begin{DoxyNote}{Note}
This function uses an internal recursive quicksort algorithm that uses excessive stack space with large lists, therefore when the list size is \texorpdfstring{$>$}{>} 1000 element, mergesort is used instead, which is equivalent to \mbox{\hyperlink{group__list__functions_gad03629b1133f3a6b47a2f33792801dbf}{sort\+\_\+stable()}}
\end{DoxyNote}
\begin{DoxySeeAlso}{See also}

\begin{DoxyItemize}
\item sort\+Stable(list, code)
\item sort\+Descending\+Stable(list, code)
\item sort(list, code)
\end{DoxyItemize}
\end{DoxySeeAlso}
\begin{DoxyRefDesc}{Deprecated}
\item[\mbox{\hyperlink{deprecated__deprecated000030}{Deprecated}}]use \mbox{\hyperlink{group__list__functions_ga0149391f4fb2c97dd4ad2080f9240753}{sort\+\_\+descending()}}; camel-\/case function names were deprecated in Qore 0.\+8.\+12 \end{DoxyRefDesc}
\mbox{\Hypertarget{group__list__functions_gae9395c79d35b26bfb8347ed88346b9a2}\label{group__list__functions_gae9395c79d35b26bfb8347ed88346b9a2}} 
\index{List Functions@{List Functions}!sortDescending@{sortDescending}}
\index{sortDescending@{sortDescending}!List Functions@{List Functions}}
\doxysubsubsection{\texorpdfstring{sortDescending()}{sortDescending()}\hspace{0.1cm}{\footnotesize\ttfamily [4/4]}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__type__conversion__functions_ga9a401e5112c58f63c05e7ee1e15968ef}{list}}$<$ auto $>$ Qore\+::sort\+Descending (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{group__type__conversion__functions_ga9a401e5112c58f63c05e7ee1e15968ef}{list}}$<$ auto $>$}]{l,  }\item[{\mbox{\hyperlink{group__type__conversion__functions_gacf16b4126b795f4b6933ef3425cadae3}{string}}}]{func }\end{DoxyParamCaption})}



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

\begin{DoxyParagraph}{Code Flags\+:}
\mbox{\hyperlink{code_flags_CONSTANT}{CONSTANT}}, \mbox{\hyperlink{code_flags_DEPRECATED}{DEPRECATED}}
\end{DoxyParagraph}

\begin{DoxyParams}{Parameters}
{\em l} & the list to sort \\
\hline
{\em 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\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
the sorted list
\end{DoxyReturn}
\begin{DoxyNote}{Note}
This function uses an internal recursive quicksort algorithm that uses excessive stack space with large lists, therefore when the list size is \texorpdfstring{$>$}{>} 1000 element, mergesort is used instead, which is equivalent to \mbox{\hyperlink{group__list__functions_gad03629b1133f3a6b47a2f33792801dbf}{sort\+\_\+stable()}}
\end{DoxyNote}
\begin{DoxySeeAlso}{See also}

\begin{DoxyItemize}
\item sort\+Stable(list, string)
\item sort\+Descending\+Stable(list, string)
\item sort(list, string)
\end{DoxyItemize}
\end{DoxySeeAlso}
\begin{DoxyRefDesc}{Deprecated}
\item[\mbox{\hyperlink{deprecated__deprecated000029}{Deprecated}}]use \mbox{\hyperlink{group__list__functions_ga0149391f4fb2c97dd4ad2080f9240753}{sort\+\_\+descending()}}; camel-\/case function names were deprecated in Qore 0.\+8.\+12 \end{DoxyRefDesc}
\mbox{\Hypertarget{group__list__functions_gacd07eea87f385a0bb8764a9fa5b47075}\label{group__list__functions_gacd07eea87f385a0bb8764a9fa5b47075}} 
\index{List Functions@{List Functions}!sortDescendingStable@{sortDescendingStable}}
\index{sortDescendingStable@{sortDescendingStable}!List Functions@{List Functions}}
\doxysubsubsection{\texorpdfstring{sortDescendingStable()}{sortDescendingStable()}\hspace{0.1cm}{\footnotesize\ttfamily [1/4]}}
{\footnotesize\ttfamily auto Qore\+::sort\+Descending\+Stable (\begin{DoxyParamCaption}\item[{auto}]{arg }\end{DoxyParamCaption})}



This function variant does nothing at all. 

\begin{DoxyParagraph}{Code Flags\+:}
\mbox{\hyperlink{code_flags_NOOP}{NOOP}}, \mbox{\hyperlink{code_flags_DEPRECATED}{DEPRECATED}}
\end{DoxyParagraph}
It is only included for backwards-\/compatibility with qore prior to version 0.\+8.\+0 for functions that would ignore type errors in arguments \mbox{\Hypertarget{group__list__functions_gaaa91d21c4ca952412d24c5e56dc234d9}\label{group__list__functions_gaaa91d21c4ca952412d24c5e56dc234d9}} 
\index{List Functions@{List Functions}!sortDescendingStable@{sortDescendingStable}}
\index{sortDescendingStable@{sortDescendingStable}!List Functions@{List Functions}}
\doxysubsubsection{\texorpdfstring{sortDescendingStable()}{sortDescendingStable()}\hspace{0.1cm}{\footnotesize\ttfamily [2/4]}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__type__conversion__functions_ga9a401e5112c58f63c05e7ee1e15968ef}{list}}$<$ auto $>$ Qore\+::sort\+Descending\+Stable (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{group__type__conversion__functions_ga9a401e5112c58f63c05e7ee1e15968ef}{list}}$<$ auto $>$}]{l }\end{DoxyParamCaption})}



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

This variant will only sort basic data types

\begin{DoxyParagraph}{Code Flags\+:}
\mbox{\hyperlink{code_flags_CONSTANT}{CONSTANT}}, \mbox{\hyperlink{code_flags_DEPRECATED}{DEPRECATED}}
\end{DoxyParagraph}
\begin{DoxyParagraph}{Example\+:}

\begin{DoxyCode}{0}
\DoxyCodeLine{list<auto> nl = sortDescendingStable(l);}

\end{DoxyCode}

\end{DoxyParagraph}

\begin{DoxyParams}{Parameters}
{\em l} & the list to sort\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
the sorted list
\end{DoxyReturn}
\begin{DoxySeeAlso}{See also}

\begin{DoxyItemize}
\item sort\+\_\+stable(list, code)
\item sort\+\_\+descending\+\_\+stable(list, code)
\item sort(list, code)
\end{DoxyItemize}
\end{DoxySeeAlso}
\begin{DoxyRefDesc}{Deprecated}
\item[\mbox{\hyperlink{deprecated__deprecated000031}{Deprecated}}]use \mbox{\hyperlink{group__list__functions_ga59bf2466a7bd64db585ad1b2b5f7ae7d}{sort\+\_\+descending\+\_\+stable()}}; camel-\/case function names were deprecated in Qore 0.\+8.\+12 \end{DoxyRefDesc}
\mbox{\Hypertarget{group__list__functions_ga86422aa7024efb5758b7eca0fe60064a}\label{group__list__functions_ga86422aa7024efb5758b7eca0fe60064a}} 
\index{List Functions@{List Functions}!sortDescendingStable@{sortDescendingStable}}
\index{sortDescendingStable@{sortDescendingStable}!List Functions@{List Functions}}
\doxysubsubsection{\texorpdfstring{sortDescendingStable()}{sortDescendingStable()}\hspace{0.1cm}{\footnotesize\ttfamily [3/4]}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__type__conversion__functions_ga9a401e5112c58f63c05e7ee1e15968ef}{list}}$<$ auto $>$ Qore\+::sort\+Descending\+Stable (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{group__type__conversion__functions_ga9a401e5112c58f63c05e7ee1e15968ef}{list}}$<$ auto $>$}]{l,  }\item[{code}]{f }\end{DoxyParamCaption})}



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

Accepts a \mbox{\hyperlink{expressions_call_reference}{call reference}} or a \mbox{\hyperlink{expressions_closure}{closure}} to use to sort complex data types or to give a special sort order

\begin{DoxyParagraph}{Code Flags\+:}
\mbox{\hyperlink{code_flags_RET_VALUE_ONLY}{RET\+\_\+\+VALUE\+\_\+\+ONLY}}, \mbox{\hyperlink{code_flags_DEPRECATED}{DEPRECATED}}
\end{DoxyParagraph}
\begin{DoxyParagraph}{Example\+:}

\begin{DoxyCode}{0}
\DoxyCodeLine{code sort\_func = int sub (hash l, hash r) \{ \textcolor{keywordflow}{return} l.id <=> r.id; \};}
\DoxyCodeLine{list<auto> nl = sortDescending(l, sort\_func);}

\end{DoxyCode}

\end{DoxyParagraph}

\begin{DoxyParams}{Parameters}
{\em l} & the list to sort \\
\hline
{\em f} & a \mbox{\hyperlink{expressions_call_reference}{call reference}} or a \mbox{\hyperlink{expressions_closure}{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\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
the sorted list
\end{DoxyReturn}
\begin{DoxySeeAlso}{See also}

\begin{DoxyItemize}
\item sort\+\_\+stable(list, code)
\item sort\+\_\+descending\+\_\+stable(list, code)
\item sort(list, code)
\end{DoxyItemize}
\end{DoxySeeAlso}
\begin{DoxyRefDesc}{Deprecated}
\item[\mbox{\hyperlink{deprecated__deprecated000033}{Deprecated}}]use \mbox{\hyperlink{group__list__functions_ga59bf2466a7bd64db585ad1b2b5f7ae7d}{sort\+\_\+descending\+\_\+stable()}}; camel-\/case function names were deprecated in Qore 0.\+8.\+12 \end{DoxyRefDesc}
\mbox{\Hypertarget{group__list__functions_gad2f335f27dbcf04054d81f722d501523}\label{group__list__functions_gad2f335f27dbcf04054d81f722d501523}} 
\index{List Functions@{List Functions}!sortDescendingStable@{sortDescendingStable}}
\index{sortDescendingStable@{sortDescendingStable}!List Functions@{List Functions}}
\doxysubsubsection{\texorpdfstring{sortDescendingStable()}{sortDescendingStable()}\hspace{0.1cm}{\footnotesize\ttfamily [4/4]}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__type__conversion__functions_ga9a401e5112c58f63c05e7ee1e15968ef}{list}}$<$ auto $>$ Qore\+::sort\+Descending\+Stable (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{group__type__conversion__functions_ga9a401e5112c58f63c05e7ee1e15968ef}{list}}$<$ auto $>$}]{l,  }\item[{\mbox{\hyperlink{group__type__conversion__functions_gacf16b4126b795f4b6933ef3425cadae3}{string}}}]{func }\end{DoxyParamCaption})}



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

\begin{DoxyParagraph}{Code Flags\+:}
\mbox{\hyperlink{code_flags_RET_VALUE_ONLY}{RET\+\_\+\+VALUE\+\_\+\+ONLY}}, \mbox{\hyperlink{code_flags_DEPRECATED}{DEPRECATED}}
\end{DoxyParagraph}
\begin{DoxyParagraph}{Example\+:}

\begin{DoxyCode}{0}
\DoxyCodeLine{list<auto> nl = sortDescending(l, \textcolor{stringliteral}{"{}my\_sort\_function"{}});}

\end{DoxyCode}

\end{DoxyParagraph}

\begin{DoxyParams}{Parameters}
{\em l} & the list to sort \\
\hline
{\em 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\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
the sorted list
\end{DoxyReturn}
\begin{DoxySeeAlso}{See also}

\begin{DoxyItemize}
\item sort\+\_\+stable(list, code)
\item sort\+\_\+descending\+\_\+stable(list, code)
\item sort(list, code)
\end{DoxyItemize}
\end{DoxySeeAlso}
\begin{DoxyRefDesc}{Deprecated}
\item[\mbox{\hyperlink{deprecated__deprecated000032}{Deprecated}}]use \mbox{\hyperlink{group__list__functions_ga59bf2466a7bd64db585ad1b2b5f7ae7d}{sort\+\_\+descending\+\_\+stable()}}; camel-\/case function names were deprecated in Qore 0.\+8.\+12 \end{DoxyRefDesc}
\mbox{\Hypertarget{group__list__functions_ga6202469e6119631474b685952cefe11f}\label{group__list__functions_ga6202469e6119631474b685952cefe11f}} 
\index{List Functions@{List Functions}!sortStable@{sortStable}}
\index{sortStable@{sortStable}!List Functions@{List Functions}}
\doxysubsubsection{\texorpdfstring{sortStable()}{sortStable()}\hspace{0.1cm}{\footnotesize\ttfamily [1/4]}}
{\footnotesize\ttfamily auto Qore\+::sort\+Stable (\begin{DoxyParamCaption}\item[{auto}]{arg }\end{DoxyParamCaption})}



This function variant does nothing at all. 

\begin{DoxyParagraph}{Code Flags\+:}
\mbox{\hyperlink{code_flags_NOOP}{NOOP}}, \mbox{\hyperlink{code_flags_DEPRECATED}{DEPRECATED}}
\end{DoxyParagraph}
It is only included for backwards-\/compatibility with qore prior to version 0.\+8.\+0 for functions that would ignore type errors in arguments \mbox{\Hypertarget{group__list__functions_ga235144befca6fe42001133e65568a54d}\label{group__list__functions_ga235144befca6fe42001133e65568a54d}} 
\index{List Functions@{List Functions}!sortStable@{sortStable}}
\index{sortStable@{sortStable}!List Functions@{List Functions}}
\doxysubsubsection{\texorpdfstring{sortStable()}{sortStable()}\hspace{0.1cm}{\footnotesize\ttfamily [2/4]}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__type__conversion__functions_ga9a401e5112c58f63c05e7ee1e15968ef}{list}}$<$ auto $>$ Qore\+::sort\+Stable (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{group__type__conversion__functions_ga9a401e5112c58f63c05e7ee1e15968ef}{list}}$<$ auto $>$}]{l }\end{DoxyParamCaption})}



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

This variant will only sort basic data types

\begin{DoxyParagraph}{Code Flags\+:}
\mbox{\hyperlink{code_flags_CONSTANT}{CONSTANT}}, \mbox{\hyperlink{code_flags_DEPRECATED}{DEPRECATED}}
\end{DoxyParagraph}

\begin{DoxyParams}{Parameters}
{\em l} & the list to sort\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
the sorted list
\end{DoxyReturn}
\begin{DoxySeeAlso}{See also}

\begin{DoxyItemize}
\item sort(list, string)
\item sort\+\_\+descending(list, string)
\item sort\+\_\+descending\+\_\+stable(list, string)
\end{DoxyItemize}
\end{DoxySeeAlso}
\begin{DoxyRefDesc}{Deprecated}
\item[\mbox{\hyperlink{deprecated__deprecated000034}{Deprecated}}]use \mbox{\hyperlink{group__list__functions_gad03629b1133f3a6b47a2f33792801dbf}{sort\+\_\+stable()}}; camel-\/case function names were deprecated in Qore 0.\+8.\+12 \end{DoxyRefDesc}
\mbox{\Hypertarget{group__list__functions_gaaefd1b7c506736541e306517cfd9d228}\label{group__list__functions_gaaefd1b7c506736541e306517cfd9d228}} 
\index{List Functions@{List Functions}!sortStable@{sortStable}}
\index{sortStable@{sortStable}!List Functions@{List Functions}}
\doxysubsubsection{\texorpdfstring{sortStable()}{sortStable()}\hspace{0.1cm}{\footnotesize\ttfamily [3/4]}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__type__conversion__functions_ga9a401e5112c58f63c05e7ee1e15968ef}{list}}$<$ auto $>$ Qore\+::sort\+Stable (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{group__type__conversion__functions_ga9a401e5112c58f63c05e7ee1e15968ef}{list}}$<$ auto $>$}]{l,  }\item[{code}]{f }\end{DoxyParamCaption})}



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

Accepts a \mbox{\hyperlink{expressions_call_reference}{call reference}} or a \mbox{\hyperlink{expressions_closure}{closure}} to use to sort complex data types or to give a special sort order

\begin{DoxyParagraph}{Code Flags\+:}
\mbox{\hyperlink{code_flags_RET_VALUE_ONLY}{RET\+\_\+\+VALUE\+\_\+\+ONLY}}, \mbox{\hyperlink{code_flags_DEPRECATED}{DEPRECATED}}
\end{DoxyParagraph}
\begin{DoxyParagraph}{Example\+:}

\begin{DoxyCode}{0}
\DoxyCodeLine{code sort\_func = int sub (hash l, hash r) \{ \textcolor{keywordflow}{return} l.id <=> r.id; \};}
\DoxyCodeLine{list<auto> nl = sortStable(l, sort\_func);}

\end{DoxyCode}

\end{DoxyParagraph}

\begin{DoxyParams}{Parameters}
{\em l} & the list to sort \\
\hline
{\em f} & a \mbox{\hyperlink{expressions_call_reference}{call reference}} or a \mbox{\hyperlink{expressions_closure}{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\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
the sorted list
\end{DoxyReturn}
\begin{DoxySeeAlso}{See also}

\begin{DoxyItemize}
\item sort(list, string)
\item sort\+\_\+descending(list, string)
\item sort\+\_\+descending\+\_\+stable(list, string)
\end{DoxyItemize}
\end{DoxySeeAlso}
\begin{DoxyRefDesc}{Deprecated}
\item[\mbox{\hyperlink{deprecated__deprecated000036}{Deprecated}}]use \mbox{\hyperlink{group__list__functions_gad03629b1133f3a6b47a2f33792801dbf}{sort\+\_\+stable()}}; camel-\/case function names were deprecated in Qore 0.\+8.\+12 \end{DoxyRefDesc}
\mbox{\Hypertarget{group__list__functions_ga69d2747df7b021b83da4c40222caddb0}\label{group__list__functions_ga69d2747df7b021b83da4c40222caddb0}} 
\index{List Functions@{List Functions}!sortStable@{sortStable}}
\index{sortStable@{sortStable}!List Functions@{List Functions}}
\doxysubsubsection{\texorpdfstring{sortStable()}{sortStable()}\hspace{0.1cm}{\footnotesize\ttfamily [4/4]}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__type__conversion__functions_ga9a401e5112c58f63c05e7ee1e15968ef}{list}}$<$ auto $>$ Qore\+::sort\+Stable (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{group__type__conversion__functions_ga9a401e5112c58f63c05e7ee1e15968ef}{list}}$<$ auto $>$}]{l,  }\item[{\mbox{\hyperlink{group__type__conversion__functions_gacf16b4126b795f4b6933ef3425cadae3}{string}}}]{func }\end{DoxyParamCaption})}



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

\begin{DoxyParagraph}{Code Flags\+:}
\mbox{\hyperlink{code_flags_RET_VALUE_ONLY}{RET\+\_\+\+VALUE\+\_\+\+ONLY}}, \mbox{\hyperlink{code_flags_DEPRECATED}{DEPRECATED}}
\end{DoxyParagraph}

\begin{DoxyParams}{Parameters}
{\em l} & the list to sort \\
\hline
{\em 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\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
the sorted list
\end{DoxyReturn}
\begin{DoxySeeAlso}{See also}

\begin{DoxyItemize}
\item sort(list, string)
\item sort\+\_\+descending(list, string)
\item sort\+\_\+descending\+\_\+stable(list, string)
\end{DoxyItemize}
\end{DoxySeeAlso}
\begin{DoxyRefDesc}{Deprecated}
\item[\mbox{\hyperlink{deprecated__deprecated000035}{Deprecated}}]use \mbox{\hyperlink{group__list__functions_gad03629b1133f3a6b47a2f33792801dbf}{sort\+\_\+stable()}}; camel-\/case function names were deprecated in Qore 0.\+8.\+12 \end{DoxyRefDesc}
