Data-Type Reference
Data-Type Reference
This section is a glossary of data-types which Murex is natively aware.
Most of the time you will not need to worry about typing in Murex as the shell is designed around productivity as opposed to strictness despite generally following a strictly typed design.
Read the Language Tour for more detail on this topic.
Definitions
For clarity, it is worth explaining a couple of terms:
Data-types in Murex data-types are an annotation describing the format of data contained in a pipe or variable. Data-types can be primitives or structured documents like JSON, CSV, and s-expressions.
Objects like maps and arrays are just documents (typically JSON) however because Murex's builtin commands and expressions work consistently across a multitude of different document types, those JSON objects and CSV tables (et al) feel as native as Murex data-types, as strings do in Bash, s-expr in LISP and JSON in JavaScript.
Primitives refer to the atomic component of a data-type. In other words, the smallest possible format for a piece of data. Where a JSON file might arrays and maps, the values for those objects cannot be divided any smaller than numbers, strings or a small number of constants like
true
,false
, andnull
.In Murex, these are defined as primitives and the following data-types are considered to be primitive types:
Numeric:
int
,float
andnum
Boolean:
bool
Text:
string
and*
(generic)Null:
null
Feature Sets
Since not all data formats are equal (for example the TOML file format doesn't support naked arrays where as JSON does), you may find some features missing in some data-types which are present in others. If in doubt then refer to the manual here or check the API manual for more details about specific hooks.
Pages
*
(generic): generic (primitive)bool
: Boolean (primitive)commonlog
: Apache httpd "common" log formatcsv
: CSV files (and other character delimited tables)float
(floating point number): Floating point number (primitive)hcl
: HashiCorp Configuration Language (HCL)int
: Whole number (primitive)json
: JavaScript Object Notation (JSON)jsonc
: Concatenated JSONjsonl
: JSON Linesnum
(number): Floating point number (primitive)path
: Structured object for working with file and directory pathspaths
: Structured array for working with$PATH
style datastr
(string): string (primitive)toml
: Tom's Obvious, Minimal Language (TOML)yaml
: YAML Ain't Markup Language (YAML)- mxjson: Murex-flavoured JSON (deprecated)