1 mzlib/ a-signature
2 mzlib/ a-unit
3 mzlib/ async-channel
4 mzlib/ awk
5 mzlib/ class
6 mzlib/ class100
7 mzlib/ cm
8 mzlib/ cm-accomplice
9 mzlib/ cmdline
10 mzlib/ cml
11 mzlib/ compat
12 mzlib/ compile
13 mzlib/ contract
14 mzlib/ control
15 mzlib/ date
16 mzlib/ deflate
17 mzlib/ defmacro
18 mzlib/ etc
19 mzlib/ file
20 mzlib/ for
21 mzlib/ foreign
22 mzlib/ include
23 mzlib/ inflate
24 mzlib/ integer-set
25 mzlib/ kw
26 mzlib/ list
27 mzlib/ match
28 mzlib/ math
29 mzlib/ md5
30 mzlib/ os
31 mzlib/ pconvert
32 mzlib/ pconvert-prop
33 mzlib/ plt-match
34 mzlib/ port
35 mzlib/ pregexp
36 mzlib/ pretty
37 mzlib/ process
38 mzlib/ restart
39 mzlib/ runtime-path
40 mzlib/ sandbox
41 mzlib/ sendevent
42 mzlib/ serialize
43 mzlib/ shared
44 mzlib/ string
45 mzlib/ struct
46 mzlib/ stxparam
47 mzlib/ surrogate
48 mzlib/ tar
49 mzlib/ thread
50 mzlib/ trace
51 mzlib/ traceld
52 mzlib/ trait
53 mzlib/ transcr
54 mzlib/ unit
55 mzlib/ unit-exptime
56 mzlib/ unit200
57 mzlib/ unitsig200
58 mzlib/ zip
Bibliography
Index
On this page:
glob->regexp
string-lowercase!
string-uppercase!
eval-string
expr->string
read-from-string
read-from-string-all
Version: 4.0.2

 

 (require mzlib/string)

The mzlib/string library re-exports several functions from scheme/base:

  real->decimal-string

  regexp-quote

  regexp-replace-quote

  regexp-match*

  regexp-match-positions*

  regexp-match-peek-positions*

  regexp-split

  regexp-match-exact?

It also re-exports regexp-try-match as regexp-match/fail-without-reading.

(glob->regexp

 [

str

 

 

 

 

 

 

hide-dots?

 

 

 

 

 

 

case-sensitive?

 

 

 

 

 

 

simple?])

 

 

(or/c regexp? byte-regexp?)

  str : (or/c string bytes?) = ?

  hide-dots? : any/c = #t

  

case-sensitive?

 

:

 

any/c

 

 

 

=

 

(eq? (system-path-convention-type)'unix)

  simple? : any/c = #f

Produces a regexp for a an input “glob pattern” str. A glob pattern is one that matches * with any string, ? with a single character, and character ranges are the same as in regexps (unless simple? is true). In addition, the resulting regexp does not match strings that begin with ., unless str begins with . or hide-dots? is #f. The resulting regexp can be used with string file names to check the glob pattern. If the glob pattern is provided as a byte string, the result is a byte regexp.

The case-sensitive? argument determines whether the resulting regexp is case-sensitive.

If simple? is true, then ranges with [...] in str are treated as literal character sequences.

(string-lowercase! str)  void?

  str : (and/c string? (not/c immutable?))

Destructively changes str to contain only lowercase characters.

(string-uppercase! str)  void?

  str : (and/c string? (not/c immutable?))

Destructively changes str to contain only uppercase characters.

(eval-string str [err-handler])  list?

  str : (or/c string? bytes?)

  

err-handler

 

:

 

(or/c false/c

      (any/c . -> . any/c)

      (-> any/c))

 

=

 

#f

Reads and evaluates S-expressions from str, returning results for all of the expressions in the string. If any expression produces multiple results, the results are spliced into the resulting list. If str contains only whitespace and comments, an empty list is returned, and if str contains multiple expressions, the result will be contain multiple values from all subexpressions.

The err-handler argument can be:

(expr->string expr)  string?

  expr : any/c

Prints expr into a string and returns the string.

(read-from-string str [err-handler])  any/c

  str : (or/c string? bytes?)

  

err-handler

 

:

 

(or/c false/c

      (any/c . -> . any/c)

      (-> any/c))

 

=

 

#f

Reads the first S-expression from str and returns it. The err-handler is as in eval-string.

(read-from-string-all str [err-handler])  list?

  str : (or/c string? bytes?)

  

err-handler

 

:

 

(or/c false/c

      (any/c . -> . any/c)

      (-> any/c))

 

=

 

#f

Reads all S-expressions from the string (or byte string) str and returns them in a list. The err-handler is as in eval-string.