Next: , Previous: Cells, Up: Data Types


6.1.3 Header Cells

Headers are Cells whose CDRs point elsewhere in memory, such as to memory allocated by malloc.

— Header: spare

spare tc7 type code

— Header: tc7_vector

scheme vector.

— Macro: VECTORP x
— Macro: NVECTORP x

Returns non-zero if x is a tc7_vector or if not, respectively.

— Macro: VELTS x
— Macro: LENGTH x

Returns the C array of SCMs holding the elements of vector x or its length, respectively.

— Header: tc7_ssymbol

static scheme symbol (part of initial system) — Header: tc7_msymbol

malloced scheme symbol (can be GCed)

— Macro: SYMBOLP x

Returns non-zero if x is a tc7_ssymbol or tc7_msymbol.

— Macro: CHARS x
— Macro: UCHARS x
— Macro: LENGTH x

Returns the C array of chars or as unsigned chars holding the elements of symbol x or its length, respectively.

— Header: tc7_string

scheme string

— Macro: STRINGP x
— Macro: NSTRINGP x

Returns non-zero if x is a tc7_string or isn't, respectively.

— Macro: CHARS x
— Macro: UCHARS x
— Macro: LENGTH x

Returns the C array of chars or as unsigned chars holding the elements of string x or its length, respectively.

— Header: tc7_Vbool

uniform vector of booleans (bit-vector)

— Header: tc7_VfixZ32

uniform vector of integers

— Header: tc7_VfixN32

uniform vector of non-negative integers

— Header: tc7_VfixN16

uniform vector of non-negative short integers

— Header: tc7_VfixZ16

uniform vector of short integers

— Header: tc7_VfixN8

uniform vector of non-negative bytes

— Header: tc7_VfixZ8

uniform vector of signed bytes

— Header: tc7_VfloR32

uniform vector of short inexact real numbers

— Header: tc7_VfloR64

uniform vector of double precision inexact real numbers

— Header: tc7_VfloC64

uniform vector of double precision inexact complex numbers

— Header: tc7_contin

applicable object produced by call-with-current-continuation

— Header: tc7_specfun

subr that is treated specially within the evaluator

apply and call-with-current-continuation are denoted by these objects. Their behavior as functions is built into the evaluator; they are not directly associated with C functions. This is necessary in order to make them properly tail recursive.

tc16_cclo is a subtype of tc7_specfun, a cclo is similar to a vector (and is GCed like one), but can be applied as a function:

  1. the cclo itself is consed onto the head of the argument list
  2. the first element of the cclo is applied to that list. Cclo invocation is currently not tail recursive when given 2 or more arguments.
— Function: makcclo proc len

makes a closure from the subr proc with len-1 extra locations for SCM data. Elements of a cclo are referenced using VELTS(cclo)[n] just as for vectors.

— Macro: CCLO_LENGTH cclo

Expands to the length of cclo.