Skip to main content

a (mkarray)

Laurence MorganAbout 2 min

a (mkarray)

A sophisticated yet simple way to build an array or list

Description

Pronounced "make array", like mkdir (etc), Murex has a pretty sophisticated builtin for generating arrays. Think like bash's {1..9} syntax:

a [1..9]

Except Murex also supports other sets of ranges like dates, days of the week, and alternative number bases.

Usage

a: [start..end] -> <stdout>
a: [start..end,start..end] -> <stdout>
a: [start..end][start..end] -> <stdout>

All usages also work with ja and ta as well, eg:

ja: [start..end] -> <stdout>
ta: data-type [start..end] -> <stdout>

You can also inline arrays with the %[] syntax, eg:

%[start..end]

Examples

» a [1..3]
1
2
3

» a [3..1]
3
2
1

» a [01..03]
01
02
03

Detail

Advanced Array Syntax

The syntax for a is a comma separated list of parameters with expansions stored in square brackets. You can have an expansion embedded inside a parameter or as it's own parameter. Expansions can also have multiple parameters.

» a 01,02,03,05,06,07
01
02
03
05
06
07
» a 0[1..3],0[5..7]
01
02
03
05
06
07
» a 0[1..3,5..7]
01
02
03
05
06
07
» a b[o,i]b
bob
bib

You can also have multiple expansion blocks in a single parameter:

» a a[1..3]b[5..7]
a1b5
a1b6
a1b7
a2b5
a2b6
a2b7
a3b5
a3b6
a3b7

a will cycle through each iteration of the last expansion, moving itself backwards through the string; behaving like an normal counter.

Creating JSON arrays with ja

As you can see from the previous examples, a returns the array as a list of strings. This is so you can stream excessively long arrays, for example every IPv4 address: a: [0..254].[0..254].[0..254].[0..254] (this kind of array expansion would hang bash).

However if you needed a JSON string then you can use all the same syntax as a but forgo the streaming capability:

» ja [Monday..Sunday]
[
    "Monday",
    "Tuesday",
    "Wednesday",
    "Thursday",
    "Friday",
    "Saturday",
    "Sunday"
]

This is particularly useful if you are adding formatting that might break under a's formatting (which uses the str data type).

Smart arrays

Murex supports a number of different formats that can be used to generate arrays. For more details on these please refer to the documents for each format

See Also

  • %[] Create Array: Quickly generate arrays
  • [ ..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 structure
  • count: Count items in a map, list or array
  • ja (mkarray): A sophisticated yet simply way to build a JSON array
  • mtac: Reverse the order of an array
  • str (string): string (primitive)
  • ta (mkarray): A sophisticated yet simple way to build an array of a user defined data-type

This document was generated from builtins/core/mkarray/array_doc.yamlopen in new window.

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