Skip to main content


Laurence MorganAbout 1 min


Reverse the order of an array


mtac takes input from STDIN and reverses the order of it.

It's name is derived from a program called tac - a tool that functions like cat but returns the contents in the reverse order. The difference with the mtac builtin is that it is data-type aware. So it doesn't just function as a replacement for tac but it also works on JSON arrays, s-expressions, and any other data-type supporting arrays compiled into Murex.


<stdin> -> mtac -> <stdout>


» ja [Monday..Friday] -> mtac

# Normal output (without mtac)
» ja [Monday..Friday]


Please bare in mind that while Murex is optimised with concurrency and streaming in mind, it's impossible to reverse an incomplete array. Thus all all of STDIN must have been read and that file closed before mtac can output.

In practical terms you shouldn't notice any difference except for when STDIN is a long running process or non-standard stream (eg network pipe).


  • mtac
  • list.reverse

See Also

  • 2darray: Create a 2D JSON array from multiple input sources
  • a (mkarray): A sophisticated yet simple way to build an array or list
  • append: Add data to the end of an array
  • count: Count items in a map, list or array
  • ja (mkarray): A sophisticated yet simply way to build a JSON array
  • jsplit: Splits STDIN into a JSON array based on a regex parameter
  • map: Creates a map from two data sources
  • msort: Sorts an array - data type agnostic
  • prefix: Prefix a string to every item in a list
  • prepend: Add data to the start of an array
  • pretty: Prettifies JSON to make it human readable
  • suffix: Prefix a string to every item in a list
  • ta (mkarray): A sophisticated yet simple way to build an array of a user defined data-type

This document was generated from builtins/core/lists/mtac_doc.yamlopen in new window.

Last update:
Contributors: Laurence Morgan,Laurence Morgan,Laurence