{"size": 949, "ext": "scrbl", "max_stars_repo_path": "elle-doc/scribblings/parameter.scrbl", "max_stars_repo_name": "tail-reversion/elle", "max_stars_repo_stars_event_min_datetime": "2021-01-07T04:34:50.000Z", "max_stars_repo_stars_event_max_datetime": "2021-03-08T01:07:58.000Z", "max_issues_repo_path": "elle-doc/scribblings/parameter.scrbl", "max_issues_repo_name": "tail-reversion/elle", "max_issues_repo_issues_event_min_datetime": null, "max_issues_repo_issues_event_max_datetime": null, "max_forks_repo_path": "elle-doc/scribblings/parameter.scrbl", "max_forks_repo_name": "tail-reversion/elle", "max_forks_repo_forks_event_min_datetime": null, "max_forks_repo_forks_event_max_datetime": null}
{"max_stars_count": 7, "max_issues_count": null, "max_forks_count": null, "avg_line_length": 35.1481481481, "max_line_length": 155, "alphanum_fraction": 0.664910432}
#lang scribble/manual

@(require "util.rkt")


@title{Parameters}

@defproc[(parameter? [v any/c]) boolean?]{
 Returns @racket[#true], if @racket[v] is a parameter; @racket[#false], otherwise.
}

@racket[(make-parameter [initial any/c] [#:name name symbol? 'parameter-procedure] [#:guard guard (option/c {λ/c any/c → #:unconstrained})]) parameter?]{
 Returns a new parameter, with initial value @racket[initial], name @racket[name], and guard @racket[guard].
}

@defform/subs[#:literals (←)
              (parameterize set-param ...+ #:in body)
              ([set-param (code:line param ← expr)])
              #:contracts ([param parameter?])]{
 Assigns each @racket[param] the given value, then evaluates the @racket[body] expression in tail position, with respect to the @racket[parameterize] form.
}

@defform[#:literals (←)
         (parameterize* set-param ...+ #:in body)]{
 Equivalent to a nested sequence of @racket[parameterize] forms.
}
