Next: , Previous: , Up: iklib records defs   [Index]


6.19.1.11 Stripping angular parentheses

In a use of the syntax define-record-type, the definition clause:

(strip-angular-parentheses)

causes angular parentheses to be stripped from the record–type name when automatically generating other syntactic identifiers related to the record–type. With a standard definition we get:

(define-record-type <alpha>)
(<alpha>? (make-<alpha>))       ⇒ #t

and using strip-angular-parentheses:

(define-record-type <alpha>
  (strip-angular-parentheses))
(alpha? (make-alpha))           ⇒ #t

Similarly for field accessors and mutators, with a standard definitions:

(define-record-type <alpha>
  (strip-angular-parentheses)
  (fields (mutable a)
          (mutable b)
          (mutable c)))

(define O
  (make-<alpha> 1 2 3))

(<alpha>-a-set! O 10)
(<alpha>-b-set! O 20)
(<alpha>-c-set! O 30)
(<alpha>-a O)   ⇒ 10
(<alpha>-b O)   ⇒ 20
(<alpha>-c O)   ⇒ 30

and using strip-angular-parentheses:

(define-record-type <alpha>
  (strip-angular-parentheses)
  (fields (mutable a)
          (mutable b)
          (mutable c)))

(define O
  (make-alpha 1 2 3))

(alpha-a-set! O 10)
(alpha-b-set! O 20)
(alpha-c-set! O 30)
(alpha-a O)     ⇒ 10
(alpha-b O)     ⇒ 20
(alpha-c O)     ⇒ 30