diff options
author | Leah Neukirchen <leah@vuxu.org> | 2022-11-07 22:48:10 +0100 |
---|---|---|
committer | Leah Neukirchen <leah@vuxu.org> | 2022-11-07 22:48:10 +0100 |
commit | 8972b21868d475a6a54c9719e6dd8167d5827ce6 (patch) | |
tree | 7ae18d45dee0bf9a38ac7466c8bcd98beb82f474 /mew.scm | |
parent | 0afc4e827e4c4a7076b1d65fa9290c36a937d607 (diff) | |
download | mew-8972b21868d475a6a54c9719e6dd8167d5827ce6.tar.gz mew-8972b21868d475a6a54c9719e6dd8167d5827ce6.tar.xz mew-8972b21868d475a6a54c9719e6dd8167d5827ce6.zip |
add gpick
Diffstat (limited to 'mew.scm')
-rw-r--r-- | mew.scm | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/mew.scm b/mew.scm index 05af49b..a56d4ec 100644 --- a/mew.scm +++ b/mew.scm @@ -7,7 +7,7 @@ empty? eof esc fin final for fun* gconcatenate gen generic-for-each genumerate get gfix giterate gmatch - group-by-accumulator gslice-when gsplit gwindow + gpick group-by-accumulator gslice-when gsplit gwindow inc inject into juxt keys @@ -403,6 +403,16 @@ (loop)) v))))))) + (define (gpick f gen) + (lambda () + (let loop ((item (gen))) + (if (eof-object? item) + item + (let ((v (f item))) + (if (eof-object? v) + (loop (gen)) + v)))))) + (define (gwindow gen n) (let ((window #f)) (lambda () |