Parameter Utilities
by Dave Herman (dherman at ccs dot neu dot edu)
This library provides several utilities for parameters.
1 Getting Started
Everything in this library is exported by a single module:
(require (planet dherman/parameter:1)) |
2 Pseudo-Parameters
A pseudo-parameter is like a PLT Scheme 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.
(make-pseudo-parameter getter setter) → (pseudo-parameter/c a) |
getter : (-> a) |
setter : (a -> any) |
Constructs a new pseudo-parameter with getter and setter functions.
(pseudo-parameter? x) → boolean? |
x : any |
Determines whether a given value is a pseudo-parameter.
(pseudo-parameter/c c) → contract? |
c : contract? |
A contract constructor for pseudo-parameters with an underlying value of contract c.
3 Parameter Sets
A parameter set is a collection of PLT Scheme 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).
| ||||||||||
| ||||||||||
|
Defines a parameter set. The struct-id is defined as a prefab structure type with one field for each parameter in the set, in declaration order. The pseudo-id is defined as a pseudo-parameter that reads or writes the values of all the parameters in the set simultaneously. Each param-id is defined as a parameter with default value computed by default-expr and optional guard computed by maybe-guard.