Multiple and Keyword Return Values
(require values+) | package: values-plus |
If no keyword arguments are provided to values+, then it returns results equivalent to using values.
If keyword arguments provided to values+, then the values are returned via values, and using a particular encoding that is not meant to be inspected directly (except by the implementation of call-with-values+, etc.). Currently, the encoding is multiple values as follows: a generated symbol that effectively tags the results as keyword results, a list of keywords, a list of values in parallel to the keyword list, and the remaining non-keyword values.
procedure
(call-with-values+ generator receiver) → any
generator : (-> any) receiver : procedure?
syntax
(define-values+ kw-formals rhs-expr)
syntax
(let-values+ ([kw-formals rhs-expr]) body ...+)
syntax
(let*-values+ ([kw-formals rhs-expr]) body ...+)