- DocumentID: msort
  Title: >-
    `msort` 
  CategoryID: commands
  Summary: >-
    Sorts an array - data type agnostic
  Description: |-
    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`.
  Usage: |-
    ```
    <stdin> -> msort -> <stdout>
    ```
  Examples: |-
    ```
    » 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"
    ]
    ```
  Detail: |-
  Synonyms:
  - msort
  - list.sort
  Related:
  - prepend
  - append
  - count
  - a
  - ja
  - jsplit
  - range
  - alter
  - mtac
  - index
  - element
