
Next: Global Constants
Up: Scheme Values and Types
Previous: Scheme Values and Types
These are the standard simple types:
- scheme_char_type -- SCHEME_CHAR_VAL extracts the character;
test for this type with SCHEME_CHARP
- scheme_integer_type -- fixnum integers; SCHEME_INT_VAL
extracts the integer; test for this type with SCHEME_INTP
- scheme_double_type -- flonum inexact numbers;
SCHEME_DBL_VAL extracts the floating-point
value; test for this type with SCHEME_DBLP
- scheme_string_type -- SCHEME_STR_VAL extracts the string and
- scheme_bignum_type -- test for this type with SCHEME_BIGNUMP
- scheme_rational_type -- test for this type with SCHEME_RATIONALP
- scheme_complex_type -- test for this type with SCHEME_COMPLEXP
SCHEME_STRLEN_VAL extracts the string length;
test for this type with SCHEME_STRINGP
- scheme_symbol_type -- SCHEME_SYM_VAL extracts the string
(the Scheme string is modified if this string is modified);
test for this type with SCHEME_SYMBOLP
- scheme_box_type -- SCHEME_PTR_VAL extracts/sets the boxed
value; test for this type with SCHEME_BOXP
- scheme_pair_type -- SCHEME_CAR extracts/sets the car
and SCHEME_CDR extracts/sets the cdr;
test for this type with SCHEME_PAIRP
- scheme_vector_type -- SCHEME_VEC_SIZE extracts the length
and SCHEME_VEC_ELS extracts the array
(the Scheme array is modified if this array is modified);
test for this type with SCHEME_VECTORP
- scheme_type_symbol_type -- SCHEME_TSYM_VAL extracts the string;
test for this type with SCHEME_TSYMBOLP
- scheme_object_type -- SCHEME_OBJ_CLASS extracts the class,
SCHEME_OBJ_DATA extracts/sets the user pointer, and
SCHEME_OBJ_FLAG extracts/sets the flag;
test for this type with SCHEME_OBJP
- scheme_class_type -- test for this type with SCHEME_CLASSP
- scheme_structure_type -- test for this type with SCHEME_STRUCTP
- scheme_struct_type_type -- test for this type with SCHEME_STRUCT_TYPEP
- scheme_input_port_type -- SCHEME_INPORT_VAL extracts/sets
the user data pointer; test for this type with SCHEME_INPORTP
- scheme_output_port_type -- SCHEME_OUTPORT_VAL extracts/sets
the user data pointer; test for this type with SCHEME_OUTPORTP
- scheme_promise_type -- test for this type with SCHEME_PROMP
- scheme_process_type -- test for this type with SCHEME_PROCESSP
- scheme_trigger_type -- test for this type with SCHEME_TRIGGERP
- scheme_hash_table_type -- test for this type with SCHEME_HASHTP
- scheme_weak_box_type -- test for this type with SCHEME_WEAKP; SCHEME_WEAK_PTR extracts the pointer
- scheme_generic_data_type -- test for this type with SCHEME_GENDATAP
The predicates SCHEME_NUMBERP returns TRUE for all
numerical types; SCHEME_REALP returns TRUE for all
non-complex numerical types. SCHEME_NUM_VAL extracts a fixnum
or a fixnum approximation for a flonum (an error is raised if there
is no acceptable approximation).
These are the procedure types:
- scheme_prim_type -- a primitive procedure
- scheme_closed_prim_type -- a primitive procedure with a data pointer
- scheme_compiled_closure_type -- a Scheme procedure
- scheme_cont_type -- a continuation
- scheme_escaping_cont_type -- an escaping continuation
- scheme_struct_proc_type -- a structure function (created by
define-struct or let-struct)
- scheme_case_closure_type -- a case-lambda procedure
The macro SCHEME_PROCP returns 1 for all procedure types and
0 for anything else.
The types are used by syntax extenders are:
- scheme_variable_type -- location of a global variable
- scheme_static_distance_type -- locaiton of a local variable
- scheme_compiled_syntax_type -- A syntax resolver

Next: Global Constants
Up: Scheme Values and Types
Previous: Scheme Values and Types
PLT