compat: Add Mes shims for the 'eval' module.
* gash/compat.scm [mes] (string-concatenate-reverse): New procedure. [mes] (char-pred): New procedure. [mes] (string-any): New procedure. [mes] (string-every): Allow character sets and characters as the predicated (using 'char-pred').
This commit is contained in:
parent
4f3ae9e083
commit
a584a5bd9c
|
@ -18,6 +18,7 @@
|
|||
|
||||
(define-module (gash compat)
|
||||
#:use-module (ice-9 match)
|
||||
#:use-module (srfi srfi-14)
|
||||
#:export (if-guile-version-below
|
||||
when-mes))
|
||||
|
||||
|
@ -85,7 +86,9 @@
|
|||
make-parameter
|
||||
parameterize
|
||||
set-port-line!
|
||||
string-concatenate-reverse
|
||||
string-every
|
||||
string-any
|
||||
the-eof-object
|
||||
noop
|
||||
make-prompt-tag
|
||||
|
@ -123,8 +126,21 @@
|
|||
(define (set-port-line! port line)
|
||||
#f)
|
||||
|
||||
(define (string-concatenate-reverse lst)
|
||||
(apply string-append (reverse lst)))
|
||||
|
||||
(define (char-pred pred)
|
||||
(cond
|
||||
((char? pred) (lambda (x) (char=? x pred)))
|
||||
((char-set? pred) (lambda (x) (char-set-contains? pred x)))
|
||||
((procedure? pred) pred)
|
||||
(else (error "Invalid character predicate."))))
|
||||
|
||||
(define (string-every pred str)
|
||||
((@ (srfi srfi-1) every) pred (string->list str)))
|
||||
((@ (srfi srfi-1) every) (char-pred pred) (string->list str)))
|
||||
|
||||
(define (string-any pred str)
|
||||
((@ (srfi srfi-1) any) (char-pred pred) (string->list str)))
|
||||
|
||||
(define the-eof-object (integer->char -1))
|
||||
|
||||
|
|
Loading…
Reference in New Issue