compat: Improve 'string-any' and 'string-every'.
* gash/compat.scm [mes] (string-every): Add optional 'start' and 'end' arguments. [mes] (string-any): Likewise.
This commit is contained in:
parent
ca36e71447
commit
c433382563
|
@ -148,11 +148,23 @@
|
|||
(define (string-for-each proc str)
|
||||
(for-each proc (string->list str)))
|
||||
|
||||
(define (string-every pred str)
|
||||
((@ (srfi srfi-1) every) (char-pred pred) (string->list str)))
|
||||
(define* (string-every pred str #:optional (start 0)
|
||||
(end (string-length str)))
|
||||
(let ((pred (char-pred pred)))
|
||||
(let loop ((k start))
|
||||
(if (= k end)
|
||||
#t
|
||||
(and (pred (string-ref str k))
|
||||
(loop (+ k 1)))))))
|
||||
|
||||
(define (string-any pred str)
|
||||
((@ (srfi srfi-1) any) (char-pred pred) (string->list str)))
|
||||
(define* (string-any pred str #:optional (start 0)
|
||||
(end (string-length str)))
|
||||
(let ((pred (char-pred pred)))
|
||||
(let loop ((k start))
|
||||
(and (< k end)
|
||||
(if (pred (string-ref str k))
|
||||
#t
|
||||
(loop (+ k 1)))))))
|
||||
|
||||
(define the-eof-object (integer->char -1))
|
||||
|
||||
|
|
Loading…
Reference in New Issue