Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Compound Types

Final’s compound types hold related values together: ordered sequences (Lists), keyed tables (Maps), Sets, named field objects (DynamicObject / StaticObject / TypedObject), Vecs and Mats, and columnar grids (Table).

The Quick Tour already introduced what each family is for. This section focuses on the APIs you use day to day, with short examples. For the path syntax behind .append^, @(), !{}, and friends, see Objects.

FamilyBest forAccess
Listsordered sequences, stacks/queues@() / !(), methods
Mapsdictionaries by key@{} / !{} / ?{}
Setslist/map hybrid, of unique keys?{}
DynamicObjectsmall ad-hoc records, Json objects.field and @{} / @(); { … } builders; .clone^
StaticObjectfixed-schema rows from a DO prototypesame API as DO for schema fields
TypedObjectreusable record types with a schema (and optional Final methods).field and @{} / @()
Vecs1-dimensional containers of fixed size set at constructionindex @[] / !()
Mats2-dimensional tabular containers of fixed size set at constructionflatIndex @() / !(); row col @[] / ![]
Tablecolumnar grids with stable multi-key sortappend / sortBy* / foreach

Use help TypeName in the TUI for the full member list of any type.

Note: Mat2f has additional uses and dedicated mat:: operations; it is documented along with VecNf vectors and OLS under Linear Algebra.