aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--module/util.scm8
1 files changed, 6 insertions, 2 deletions
diff --git a/module/util.scm b/module/util.scm
index fe922b22..0417d36f 100644
--- a/module/util.scm
+++ b/module/util.scm
@@ -462,9 +462,13 @@
o
(loop (proc o)))))
-(define-public (values-map proc . lists)
+;; (a → values a), list ... → values a
+(define-public (valued-map proc . lists)
(apply values
- (apply map proc lists)))
+ (apply append-map
+ (lambda args
+ (call-with-values (lambda () (apply proc args)) list))
+ lists)))