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.

Contact

Send us a message — we'll reply by email.