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 Contract utilities
10 File and path utilities
11 Parameter utilities
12 Syntax utilities
13 SRFI19 time utilities
14 Scribble utilities
15 Generators
16 Generators (short names)
17 Pipelines
18 Write-through cache
19 Yieldable procedures
20 Debugging tools
21 Profiling tools
22 Logging tools
On this page:


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.


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


  > (define-parameter foo


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


  > (with-foo 10 (foo))


  > (with-foo "bar" 10)

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