{"size": 1141, "ext": "scrbl", "max_stars_repo_path": "pkgs/racket-doc/scribblings/reference/values.scrbl", "max_stars_repo_name": "lkh01/racket", "max_stars_repo_stars_event_min_datetime": "2018-07-29T04:13:52.000Z", "max_stars_repo_stars_event_max_datetime": "2022-02-14T16:11:17.000Z", "max_issues_repo_path": "pkgs/racket-doc/scribblings/reference/values.scrbl", "max_issues_repo_name": "lkh01/racket", "max_issues_repo_issues_event_min_datetime": "2017-08-25T20:26:37.000Z", "max_issues_repo_issues_event_max_datetime": "2022-02-26T17:48:40.000Z", "max_forks_repo_path": "pkgs/racket-doc/scribblings/reference/values.scrbl", "max_forks_repo_name": "lkh01/racket", "max_forks_repo_forks_event_min_datetime": "2016-04-25T11:47:57.000Z", "max_forks_repo_forks_event_max_datetime": "2017-05-09T14:52:48.000Z"}
{"max_stars_count": 10, "max_issues_count": 15, "max_forks_count": 3, "avg_line_length": 31.6944444444, "max_line_length": 76, "alphanum_fraction": 0.7309377739}
#lang scribble/doc
@(require "mz.rkt")

@title[#:tag "values"]{Multiple Values}

See @secref["values-model"] for general information about multiple
result values. In addition to @racket[call-with-values] (described in
this section), the @racket[let-values], @racket[let*-values],
@racket[letrec-values], and @racket[define-values] forms (among
others) create continuations that receive multiple values.

@defproc[(values [v any/c] ...) any]{

Returns the given @racket[v]s. That is, @racket[values] returns its
provided arguments.

@examples[
(values 1)
(values 1 2 3)
(values)
]}

@defproc[(call-with-values [generator (-> any)] [receiver procedure?]) any]{

Calls @racket[generator], and passes the values that
@racket[generator] produces as arguments to @racket[receiver]. Thus,
@racket[call-with-values] creates a continuation that accepts any
number of values that @racket[receiver] can accept. The
@racket[receiver] procedure is called in tail position with respect to
the @racket[call-with-values] call.

@examples[
(call-with-values (lambda () (values 1 2)) +)
(eval:error (call-with-values (lambda () 1) (lambda (x y) (+ x y))))
]}
