Next: Conservative GC, Up: How Guile does it
Any code which operates on Guile datatypes must #include
the
header file <libguile.h>
. This file contains a definition for
the SCM
typedef (Guile's universal type, as in the examples
above), and definitions and declarations for a host of macros and
functions that operate on SCM
values.
All identifiers declared by <libguile.h>
begin with scm_
or SCM_
.
The functions described here generally check the types of their
SCM
arguments, and signal an error if their arguments are of an
inappropriate type. Macros generally do not, unless that is their
specified purpose. You must verify their argument types beforehand, as
necessary.
Macros and functions that return a boolean value have names ending in
P
or _p
(for “predicate”). Those that return a negated
boolean value have names starting with SCM_N
. For example,
SCM_IMP (
x)
is a predicate which returns non-zero iff
x is an immediate value (an IM
). SCM_NCONSP
(
x)
is a predicate which returns non-zero iff x is
not a pair object (a CONS
).