# Types

There are five basic variable types. The types are: Boolean (bool), integer (int), float (flt), vector (vec), string (str). In addition, there are three special types — number (num), any (any), and symbol (sym) — that are explained below. Multiple instances of the same type in a command signature are most often numbered (i1 i2 i3 … and so on).*

bool

A Boolean value (b), with six valid expressions: on off true false yes no. If no value is found, a Boolean is assumed to be true. No value, on, true, and yes are all equivalent. off, false, and no are all equivalent. Multiple instances in a command are numbered (b1 b2 b3 etc.).

int

An integer (i), positive or negative. An integer cannot contain a decimal. Multiple instances in a command are numbered (i1 i2 i3 etc.).

ind

An index (ind), positive integer. Multiple instances in a command are numbered (ind1 ind2 ind3 etc.).

flt

A real number (f), positive or negative. It may be written in scientific e notation. Multiple instances in a command are numbered (f1 f2 f3 etc.).

vec

A vector (v or v2 or v3) expressed as a matrix with one row. v2 and v3 denote that a 2D or 3D vector, respectively, is required. A plain “v” indicates that a vector of the same dimensionality as the code is required, that is, a 3D vector is required if the code is a 3D code, and a 2D vector is required if the code is a 2D code. In FLAC3D, v always indicates a 3D vector. When more than one vector of the same type in is required in a command these are distinguished with underscore-appended letters (v2_a v2_b or v_a v_b, etc.).

str

A string (s) of alphanumeric characters. Multiple instances in a command are numbered (s1 s2 s3 etc.).

map

A map (m) container of key-values pairs.

num

A number (n), for which either a flt or an int is valid. Multiple instances in a command are numbered (n1 n2 n3 etc.).

any

A catch-all for any (a) of the above types (though not sym). Multiple instances in a command are numbered (a1 a2 a3 etc.). This type is also indicated when a specific combination of types from those above is acceptable (for instance, the common case where a string s or an integer i may be supplied). When this is the case, the specific acceptable types are indicated in the explanatory text.

sym

A FISH symbol (name) — where name is the name of either a FISH variable or a FISH function.

Note

*In some cases, multiple instances of a type in a single command may be demarcated differently if the variation enhances interpretability (for instance, fx fy fz). In other cases, they may be given “names” (imax, fradius, etc.) because they appear as arguments of one keyword but may be referred to in the explanatory text of another keyword (review the geometry generate cone command, for instance). In these cases the basic type is always indicated by the first letter — “i” for an int, “f” for a flt, and so on.