5.2. structs
Structs are composite types that contain values of different types associated with a set of string keys. The set of keys and their corresponding value types is fixed at runtime.
Struct values can be created using curly brackets {"key" 3}
(which is
syntactic sugar for the (mkstruct …)
builtin).
This uses Pure Op semantics to construct a struct from its parameters. The keys have to be constants.
(trace {"a" 1 "b" 'hello world'})
<{a: num b: str}= {a: 1 b: "hello world"}>
The type notation {a: num b: str}
designates a struct type with the key a
mapping to a value of type num
and the key b
mapping to a value of type
str
respectively, whereas the value notation {a: 1 b: "hello world"}
shows
the struct contents.
The struct module provides Ops for working with arrays.