Next: , Up: How Guile does it

A.2.1 General Rules

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).