Object control functions

! ( value index list -- )  assigns a value to a list field by index

& ( value0 value1 -- value2 )  concatenates texts or lists

, ( list value -- list )  appends a value to the end of a list, with an empty name

@ ( index list -- value )  returns list field by index

array ( value size -- list )  creates a list of multiple copies of a value

cast ( number0 number1 -- number2 )  converts a number to the same primitive schema as another number

closure ( ... -- ... )  calls the topmost callable list. Use

@closure
to get a reference to it

copy ( value0 -- value1 )  clones a value

fieldCount ( list -- size )  returns the number of fields in a list or a structure

fieldName ( list index -- name )  extracts the name of a list field by index

has ( list name -- condition )  returns TRUE if a list contains a field with a given name

insert ( value name list -- )  appends a value to the end of a list, with a given name

is ( value0 value1 -- condition )  returns TRUE if both values reference the same object, equal primitive values are treated as the same object

remove ( indexOrName list -- )  removes a field from a list by index or by name (the last matching field is removed)

same ( value0 value1 -- condition )  returns TRUE if both values have the same schema

self ( ... -- ... )  references the topmost bound list, if any. If the list is a callable, it will be called instead - use

@self
to get a reference to it

set ( srcList dstList -- )  replaces fields in one list with copies of fields from another list

untail ( list -- list value )  extracts a value from the end of a list