Stream New List (a)

A sophisticated yet simple way to stream an array or list (mkarray)

Description

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).

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

Synonyms

See Also


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 Sep 18 21:18:57 UTC 2024 against commit c037883c03788357164e9846c84d9f777251495d9452a8e.

Current version is 6.3.4225 (develop) which has been verified against tests cases.