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

 

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:

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