Wiki
Download
Manual
Eggs
API
Tests
Bugs
show
edit
history
You can edit this page using
wiki syntax
for markup.
Article contents:
== Outdated egg! This is an egg for CHICKEN 4, the unsupported old release. You're almost certainly looking for [[/eggref/5/records|the CHICKEN 5 version of this egg]], if it exists. If it does not exist, there may be equivalent functionality provided by another egg; have a look at the [[https://wiki.call-cc.org/chicken-projects/egg-index-5.html|egg index]]. Otherwise, please consider porting this egg to the current version of CHICKEN. [[tags: egg]] == records This extension provides a procedural interface to create records, similar to the {{define-record}} and {{define-record-type}} ([[http://srfi.schemers.org/srfi-9|SRFI-9]]) constructs. To use this extension, execute {{(require-extension records)}} in your code. This extension provides the {{records}} module. === make-record-type <procedure>(make-record-type type-name field-names)</procedure> Returns a "record-type descriptor", a value representing a new datatype disjoint from all others. The TYPE-NAME argument must be a symbol or a string. The FIELD-NAMES argument is a list of symbols naming the "fields" of a record of the new type. It is an error if the list contains any duplicates. === record-constructor <procedure>(record-constructor rtd [field-names])</procedure> Returns a procedure for constructing new members of the type represented by RTD. The returned procedure accepts exactly as many arguments as there are symbols in the given list, FIELD-NAMES; these are used, in order, as the initial values of those fields in a new record, which is returned by the constructor procedure. The values of any fields not named in that list are unspecified. The FIELD-NAMES argument defaults to the list of field names in the call to {{make-record-type}} that created the type represented by RTD; if the FIELD-NAMES argument is provided, it is an error if it contains any duplicates or any symbols not in the default list. === record-predicate <procedure>(record-predicate rtd)</procedure> Returns a procedure for testing membership in the type represented by RTD. The returned procedure accepts exactly one argument and returns a true value if the argument is a member of the indicated record type; it returns a false value otherwise. === record-accessor <procedure>(record-accessor rtd field-name)</procedure> Returns a procedure for reading the value of a particular field of a member of the type represented by RTD. The returned procedure accepts exactly one argument which must be a record of the appropriate type; it returns the current value of the field named by the symbol FIELD-NAME in that record. The symbol FIELD-NAME must be a member of the list of field-names in the call to {{make-record-type}} that created the type represented by RTD. === record-modifier <procedure>(record-modifier rtd field-name)</procedure> Returns a procedure for writing the value of a particular field of a member of the type represented by RTD. The returned procedure accepts exactly two arguments: first, a record of the appropriate type, and second, an arbitrary Scheme value; it modifies the field named by the symbol FIELD-NAME in that record to contain the given value. The returned value of the modifier procedure is unspecified. The symbol FIELD-NAME must be a member of the list of field-names in the call to {{make-record-type}} that created the type represented by RTD. === Authors David Carlton, re-written by Aubrey Jaffer, ported to CHICKEN by [[/users/felix winkelmann|felix winkelmann]] === License Public domain === History ; 1.3 : removed {{-host}} option from setup script ; 1.2 : ported to CHICKEN 4 ; 1.0 : Initial release
Description of your changes:
I would like to authenticate
Authentication
Username:
Password:
Spam control
What do you get when you subtract 22 from 0?