PREV UP NEXT SCM

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_bvect
uniform vector of booleans (bit-vector)
Header: tc7_ivect
uniform vector of integers
Header: tc7_uvect
uniform vector of non-negative integers
Header: tc7_fvect
uniform vector of short inexact real numbers
Header: tc7_dvect
uniform vector of double precision inexact real numbers
Header: tc7_cvect
uniform vector of double precision inexact complex numbers
Header: tc7_contin
applicable object produced by call-with-current-continuation
Header: tc7_cclo
Subr and environment for compiled closure

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.