Version: 5.1
29 Multiple Values
(require unstable/values) |
This library is unstable;
compatibility will not be maintained.
See Unstable for more information.
This module provides tools for manipulating functions and expressions that produce multiple values.
(values->list expr) |
Produces a list of the values returned by expr.
Example: |
> (values->list (values 1 2 3)) |
'(1 2 3) |
Produces a pair of lists of the respective values of f applied to the
elements in lst ... sequentially.
Example: |
> (map2 (lambda (x) (values (+ x 1) (- x 1))) (list 1 2 3)) |
'(2 3 4) |
'(0 1 2) |
| ||||||||||
n : natural-number/c | ||||||||||
f : (-> A ... (values B_1 ... B_n)) | ||||||||||
lst : (listof A) |
Example: | |||||
| |||||
'(2 3 4) | |||||
'(1 2 3) | |||||
'(0 1 2) |
| ||||||||||||
|
These functions combine the values in the lists lst ... using the
multiple-valued function f; foldr/values traverses the lists
right to left and foldl/values traverses left to right.
Examples: | |||
| |||
| |||
10 | |||
'(5 6 7 8) | |||
| |||
10 | |||
'(8 7 6 5) |