Reference · Types
Types
34 words. Sorted alphabetically.
->ARRAY ( n:integer -- array:array )
Collect the top n items into an array. n is on TOS.
->DMS ( d:number m:number s:number -- dms:dms )( q:quantity -- dms:dms )
Construct a DMS from (d m s).
->FLOAT ( a:integer -- value:number )( frac:fraction -- value:number )
Convert TOS to double.
->FRAC ( numerator:integer denominator:integer -- frac:fraction )( value:number -- frac:fraction )
Create a fraction from integer numerator and denominator, or approximate a double as a fraction.
->FRAMES ( tc:timecode -- frames:integer )
Convert a timecode to an absolute frame count.
->HMS ( tc:timecode -- hms:hms )( h:number m:number s:number -- hms:hms )( q:quantity -- hms:hms )
Construct an HMS from (h m s).
->INT ( a:number -- value:integer )
Convert TOS to integer (rounded to nearest).
->NAME ( str:string -- name:name )
Coerce a String to a Name. Enables dynamic method dispatch via SEND, where the method name is computed at runtime rather than named as a literal.
->OBJ ( key:string value:any -- object:object )( key:name value:any -- object:object )
Create a single-field object. "key" value ->OBJ
->OBJECT ( n:integer -- object:object )
Build an object from n items (even count, alternating key/value). "k1" v1 .. "kn" vn n ->OBJECT
->STACK ( n:integer -- stack:stack )
->STRING ( a:any -- str:string )
Convert TOS to its string representation.
->TC ( rate:fraction frames:number -- tc:timecode )( rate:fraction hh:number mm:number ss:number ff:number -- tc:timecode )( hms:hms rate:fraction -- tc:timecode )
Create a timecode from (frames, framerate), (h, m, s, frames, framerate), or (hms, framerate).
->VEC3 ( double double double )( integer double double )( double integer double )( integer integer double )( double double integer )( integer double integer )( double integer integer )( integer integer integer )
Create a 3D vector from three numbers (x, y, z).
->VEC3x ( x:number -- v:vec3 )
Create a VEC3 with only the X component set (Y and Z are NaN).
->VEC3y ( y:number -- v:vec3 )
Create a VEC3 with only the Y component set (X and Z are NaN).
->VEC3z ( z:number -- v:vec3 )
Create a VEC3 with only the Z component set (X and Y are NaN).
(( ()
Push a stack::Stack open marker. Close with )). (( 1 2 3 )) produces a Stack containing those items.
)) ( -- stack:stack )
Close a stack::Stack literal. Packages items above the (( marker into a stack::Stack.
[ ()
Push a vector-open marker. Close with ].
] ( -- result:any )
Close a vector literal. Builds a vector from numeric items, or a matrix if all items are vectors of the same length.
{ ()
Push an object-open marker. Close with }.
} ( -- obj:object )
Close an object literal started with {. Collects key/value pairs above the { marker into an object.
ARREV ( array:array -- array:array )
Reverse an array in-place.
DMS-> ( dms:dms -- q:quantity )
Convert DMS to an angle-Quantity in radians.
DMS->D ( dms:dms -- degrees:number )
Convert DMS to a Double in decimal degrees.
FIND-MARK ( label:string -- count:integer )
Find a marker by label; push count of items above it. "[" FIND-MARK
FR ( tc:timecode -- rate:fraction )
Extract the frame rate (as a fraction) from a timecode.
HMS-> ( hms:hms -- q:quantity )
Convert HMS to a time-Quantity in seconds.
HMS->H ( hms:hms -- hours:number )
Convert HMS to a Double in decimal hours.
MARK ( label:string -- marker:any )
Push a marker onto the stack with the given label. "[" MARK
OBJ-> ( z:complex -- re:number im:number )( object:object -- count:double )( array:array -- count:double )( stack:stack -- count:double )( class:class -- count:double )( v:vec3 -- x:number y:number z:number )( m:mx3 -- e11:number e12:number e13:number e21:number e22:number e23:number e31:number e32:number e33:number )( q:quantity -- d:number s:string )( frac:fraction -- numerator:integer denominator:integer )( hms:hms -- h:integer m:integer s:number )( dms:dms -- d:integer m:integer s:number )( mathexpr )
Explode a structured value into its components — object, array, stack, class instance, complex, fraction, quantity, vec3, mx3, or color types.
STACK-> ( stack:stack -- count:double )
VEC3-> ( v:vec3 -- x:number y:number z:number )
Explode a VEC3 to x, y, z doubles.