DOC HOME SITE MAP MAN PAGES GNU INFO SEARCH
 

(guile.info.gz) Immediates vs Non-immediates

Info Catalog (guile.info.gz) Conservative GC (guile.info.gz) How Guile does it (guile.info.gz) Immediate Datatypes
 
 18.2.3 Immediates vs Non-immediates
 -----------------------------------
 
 Guile classifies Scheme objects into two kinds: those that fit entirely
 within an `SCM', and those that require heap storage.
 
    The former class are called "immediates".  The class of immediates
 includes small integers, characters, boolean values, the empty list, the
 mysterious end-of-file object, and some others.
 
    The remaining types are called, not surprisingly, "non-immediates".
 They include pairs, procedures, strings, vectors, and all other data
 types in Guile.
 
  -- Macro: int SCM_IMP (SCM X)
      Return non-zero iff X is an immediate object.
 
  -- Macro: int SCM_NIMP (SCM X)
      Return non-zero iff X is a non-immediate object.  This is the
      exact complement of `SCM_IMP', above.
 
    Note that for versions of Guile prior to 1.4 it was necessary to use
 the `SCM_NIMP' macro before calling a finer-grained predicate to
 determine X's type, such as `SCM_CONSP' or `SCM_VECTORP'.  This is no
 longer required: the definitions of all Guile type predicates now
 include a call to `SCM_NIMP' where necessary.
 
Info Catalog (guile.info.gz) Conservative GC (guile.info.gz) How Guile does it (guile.info.gz) Immediate Datatypes
automatically generated byinfo2html