diff options
Diffstat (limited to 'module')
-rw-r--r-- | module/util.scm | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/module/util.scm b/module/util.scm index 474c7589..4981bb9a 100644 --- a/module/util.scm +++ b/module/util.scm @@ -463,6 +463,14 @@ (let* ((row rest (split-at list width))) (cons row (group rest width))))) +;; repeatedly apply proc to base unitl @var{until} is satisfied. +;; (a → a), (a → bool), a → a +(define-public (iterate proc until base) + (let loop ((o base)) + (if (until o) + o + (loop (proc o))))) + (define-syntax let-env |