1 Exception utilities
2 Number utilities
3 String utilities
4 Bytes utilities
5 Symbol utilities
6 List utilities
7 PLT 4x hash utilities
8 PLT 3x hash utilities
9 URL utilities
10 Contract utilities
11 File and path utilities
12 Parameter utilities
13 Syntax utilities
14 SRFI19 time utilities
15 Scribble utilities
16 Generators
17 Generators (short names)
18 Pipelines
19 Write-through cache
20 Yieldable procedures
21 Debugging tools
22 Profiling tools
23 Logging tools
On this page:
make-guard
define-parameter
Version: 4.0.1.2

 

12 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:

  > (define param

      (make-parameter #f (make-guard integer+false? "(U integer #f)")))

  > (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:

Examples:

  > (define-parameter foo

      #f

      (make-guard integer+false? "(U integer #f)")

      with-foo)

  > (with-foo 10 (foo))

  10

  > (with-foo "bar" 10)

  Expected (U integer #f), received "bar"