Info Node: (guile.info)Data types and constants defined by gh
(guile.info)Data types and constants defined by gh
Data types and constants defined by gh
**************************************
The following C constants and data types are defined in gh:
- Data type: SCM
This is a C data type used to store all Scheme data, no matter
what the Scheme type. Values are converted between C data types
and the SCM type with utility functions described below (Note:Converting data between C and Scheme). [FIXME: put in
references to Jim's essay and so forth.]
- Constant: SCM_BOOL_T
- Constant: SCM_BOOL_F
The _Scheme_ values returned by many boolean procedures in
libguile.
This can cause confusion because they are different from 0 and 1.
In testing a boolean function in libguile programming, you must
always make sure that you check the spec: `gh_' and `scm_'
functions will usually return `SCM_BOOL_T' and `SCM_BOOL_F', but
other C functions usually can be tested against 0 and 1, so
programmers' fingers tend to just type `if (boolean_function()) {
... }'
- Constant: SCM_UNSPECIFIED
This is an SCM object which does not correspond to any legal Scheme
value. It can be used in C to terminate functions with variable
numbers of arguments, such as `gh_list()'.