diff options
author | Leah Neukirchen <leah@vuxu.org> | 2023-01-05 23:36:34 +0100 |
---|---|---|
committer | Leah Neukirchen <leah@vuxu.org> | 2023-01-05 23:36:34 +0100 |
commit | 6577a1d3c3e250ea9cd204baac4633e5e68ceabb (patch) | |
tree | f3e7af11acb69c83e18f603892cb270253926d50 /mew.scm | |
parent | 58f600a1bda649cf60568fd6c53784f035899d63 (diff) | |
download | mew-6577a1d3c3e250ea9cd204baac4633e5e68ceabb.tar.gz mew-6577a1d3c3e250ea9cd204baac4633e5e68ceabb.tar.xz mew-6577a1d3c3e250ea9cd204baac4633e5e68ceabb.zip |
add len>=
Diffstat (limited to 'mew.scm')
-rw-r--r-- | mew.scm | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/mew.scm b/mew.scm index 70bcff6..0e54d91 100644 --- a/mew.scm +++ b/mew.scm @@ -12,7 +12,7 @@ imp inc inc! inject inject-accumulator into juxt keys - len lines loc + len len>= lines loc mod negate nth-accumulator odometer one-of op op* @@ -399,6 +399,19 @@ ((procedure? o) (generator-count (op #t) o)) (#t (error "no len defined")))) + (define (len>= o n) + (cond ((list? o) + (let loop ((o o) (n n)) + (cond ((null? o) (not (positive? n))) + ((positive? n) (loop (cdr o) (- n 1))) + (else #t)))) + ((procedure? o) + (let loop ((v (o)) (n n)) + (cond ((eof-object? v) (not (positive? n))) + ((positive? n) (loop (o) (- n 1))) + (else #t)))) + (else (>= (len o) n)))) + (define dup (case-lambda ((o) (dup o #t)) |