a
)A sophisticated yet simple way to stream an array or list (mkarray)
mkarray, pronounced “make array” like mkdir
(etc), is Murex’s sophisticated syntax 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.
This builtin streams arrays as a list of strings
(str
).
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]
» a [1..3]
1
2
3
» a [3..1]
3
2
1
» a [01..03]
01
02
03
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.
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).
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
a
mkarray
count
): Count
items in a map, list or arrayja
):
A sophisticated yet simply way to build a JSON arrayta
):
A sophisticated yet simple way to build an array of a user defined
data-type[ ..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
structuremtac
):
Reverse the order of an array%[]
Array
Builder: Quickly generate arraysstr
(string): string
(primitive)This document was generated from builtins/core/mkarray/array_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.