Containers

    Type Declaration,
    example
    Description
    List List<Type>,
    List<Int32>
    A variable-length sequence consisting of same-type elements.
    Dictionary Dict<KeyType, ValueType>,
    Dict<String,Int32>
    Set of key-value pairs with a fixed type of keys and values.
    Set Set<KeyType>,
    Set<String>
    A set of elements with a fixed type is a special case of a dictionary with the Void value type.
    Tuple Tuple<Type1, ..., TypeN>,
    Tuple<Int32,Double>
    Set of unnamed fixed-length elements with types specified for all elements.
    Structure Struct<Name1:Type1, ..., NameN:TypeN>,
    Struct<Name:String,Age:Int32>
    A set of named fields with specified value types, fixed at query start (must be data-independent).
    Stream Stream<Type>,
    Stream<Int32>
    Single-pass iterator by same-type values, not serializable
    Variant on tuple Variant<Type1, Type2>,
    Variant<Int32,String>
    A tuple known to have exactly one element filled
    Variant on structure Variant<Name1:Type1, Name2:Type2>,
    Variant<value:Int32,error:String>
    A structure known to have exactly one element filled
    Enumeration Enum<Name1, Name2>,
    Enum<value,error>
    A container with exactly one enumeration element selected and defined only by its name.

    If needed, you can nest containers into each other in arbitrary combinations, for example: List<TupleInt32,Int32>.

    In certain contexts, optional values can also be considered a container type (Optional<Type>) that behaves as a list of length 0 or 1.

    To create literals of list containers, dictionary containers, set containers, tuple containers, or structure containers, you can use the operator notation.
    To create a variant literal over a tuple or structure, use the function Variant.
    To create an enumeration literal, use the function Enum.

    To access container elements, use a dot or square brackets, depending on the container type.