Parameter Utilities
by Dave Herman (dherman at ccs dot neu dot edu) and Sam Tobin-Hochstadt.
This library provides several utilities for parameters.
1 Getting Started
Everything in this library is exported by a single module:
(require parameter) | package: parameter |
2 Pseudo-Parameters
A pseudo-parameter is like a Racket parameter, but comprises both an accessor and a mutator function. This can be used, for example, to create compound parameters that simultaneously update multiple parameters.
procedure
(make-pseudo-parameter getter setter) → (pseudo-parameter/c a)
getter : (-> a) setter : (a -> any)
procedure
(pseudo-parameter? x) → boolean?
x : any
procedure
(pseudo-parameter/c c) → contract?
c : contract?
3 Parameter Sets
A parameter set is a collection of Racket parameters that can be read or written to all at once with a prefab structure. Because the structure is prefab, a parameter set can also easily be marshalled and demarshalled (assuming its values are all writeable, of course).
syntax
(define-parameter-set struct-id pseudo-id (param-id default-expr maybe-guard) ...)
maybe-guard =
| guard-expr