previous up next     contents index
Next: Objects Up: Structures Previous: Structures

Library Functions

 
Scheme_Object *  scheme_make_struct_type(char *base_name, Scheme_Object *field_names, 
                         int num_fields) 

Creates and returns a new structure type. The base_name argument is used as the name of the new structure type. The field_names argument should be a (Scheme) list of symbols for the field names. The num_fields argument specifies the number of fields in this list.

 
Scheme_Object **  scheme_make_struct_names(Scheme_Object *struct_type, Scheme_Object *field_names, 
                          int flags, int *count_out) 

Creates and returns an array of standard structure value name symbols. The struct_type argument must be a structure type value created by scheme_make_struct_type. The field_names argument is a list of field names as in scheme_make_struct_type. The flags argument specifies which names should be generated, and if count_out is not NULL, *count_out is filled with the number of names returned in the array.

 
Scheme_Object **  scheme_make_struct_values(Scheme_Object *struct_type, Scheme_Object **names, 
                          int count, int flags) 

Creates and returns an array of the standard structure value and procedure values for struct_type. The struct_type argument must be a structure type value created by scheme_make_struct_type. The names procedure must be an array of name symbols, generally the array returned by scheme_make_struct_names. The count argument specifies the length of the names array (and therefore the number of expected return values) and the flags argument specifies which values should be generated.

 
Scheme_Object *  scheme_make_struct_instance(Scheme_Object *struct_type, int argc, Scheme_Object **argv) 

Creates an instance of the structure type struct_type. The argc and argv arguments provide the field values for the new instance.

 
int   scheme_is_struct_instance(Scheme_Object *struct_type, Scheme_Object **v) 

Returns 1 if v is an instance of struct_type or 0 otherwise.



PLT