Hi guilers!
Is this of any interest to merge into boot.scm?
Chris
diff --git a/module/ice-9/boot-9.scm b/module/ice-9/boot-9.scm
index 0d37f3d48..edb7e93cc 100644
--- a/module/ice-9/boot-9.scm
+++ b/module/ice-9/boot-9.scm
@@ -803,9 +803,13 @@ VALUE."
   (lambda _
     value))
 
-(define (and=> value procedure)
-  "When VALUE is #f, return #f.  Otherwise, return (PROC VALUE)."
-  (and value (procedure value)))
+(define (and=> value . procedures)
+  "When VALUE is #f, return #f.  Otherwise, return (PROC VALUE). Recurse
+with subsequent procedures."
+  (if (null? procedures)
+      value
+      (let ((result ((car procedures) value)))
+        (and result (apply and=> result (cdr procedures))))))
 
 (define call/cc call-with-current-continuation)
 

Reply via email to