11 Parameter utilities
(require (planet untyped/unlib/parameter)) |
Convenience forms for working with parameters.
(make-guard pred type-message) → (any -> any) |
pred : (any -> boolean?) |
type-message : string? |
Creates a procedure that may be used as a parameter’s guard procedure. The guard only allows values for which pred returns #t. If an invalid value is supplied, the guard raises exn:fail:contract with an error message based on the supplied type-message.
make-guard has been superseded by the parameter/c contract in PLT 4.
Examples: | ||
| ||
> (param 1) | ||
> (param #f) | ||
> (param #t) | ||
Expected (U integer #f), received #t |
(define-parameter id initial-value guard-proc with-form-id) |
Convenience form that expands into two definitions:
id is bound to a parameter with the supplied initial-value and guard-proc;
with-form-id is bound to a syntax of the form:
(with-form-id expr
body )
that expands to:
(parameterize ([id expr]) body )
Examples: | ||||
| ||||
> (with-foo 10 (foo)) | ||||
10 | ||||
> (with-foo "bar" 10) | ||||
Expected (U integer #f), received "bar" |