msort
)Sorts an array - data type agnostic
This builtin takes input from stdin, sorts it and the outputs it to stdout.
The code behind msort
is significantly more lightweight
than UNIX sort. It doesn’t work with numeric types (eg sorting floating
point numbers), reversed order nor multi-column data. It is specifically
designed to work with lists of data. For example arrays in data formats
like JSON (json
), YAML (yaml
) or S-Expressions
(sexp
); or lists of strings (str
). The
intention is to cover use cases not already covered by UNIX sort while
also providing something rudimentary for Murex scripts to function on
Windows without having to write lots of ugly platform-specific code.
This is also the reason this builtin is called msort
rather
than conflicting with the existing UNIX name, sort
.
<stdin> -> msort -> <stdout>
» tout json (["c", "b", "a"]) -> msort
[
"a",
"b",
"c"
]
Since msort
does not support reversed order, you will
need to pipe the output of msort
into another builtin:
» tout json (["c", "b", "a"]) -> msort -> mtac
[
"c",
"b",
"a"
]
msort
list.sort
alter
/ ~>
): Change a value within a
structured data-type and pass that change along the pipeline without
altering the original source inputappend
): Add data to the end of an arraycount
): Count
items in a map, list or arrayja
):
A sophisticated yet simply way to build a JSON array[ ..Range ]
: Outputs a ranged subset of data from
stdin[ Index ]
): Outputs an element from an array, map or
table[[ Element ]]
): Outputs an element from a nested
structureprepend
): Add data to the start of an arraymtac
):
Reverse the order of an arrayjsplit
): Splits stdin into a JSON array based on a
regex parametera
): A
sophisticated yet simple way to stream an array or list (mkarray)This document was generated from builtins/core/lists/msort_doc.yaml.
This site's content is rebuilt automatically from murex's source code after each merge to the master
branch. Downloadable murex binaries are also built with the website.
Last built on Wed Jan 15 23:07:50 UTC 2025 against commit b4c4296b4c429617fd41527ea0efef33c52c15ef2b64972.
Current version is 6.4.2063 (develop) which has been verified against tests cases.