Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | added support for list of chars in string-split, added nest |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA1: |
37a97684bf8e265cc51e476458534e87 |
User & Date: | aldo 2017-12-06 15:53:40 |
Context
2017-12-06
| ||
16:55 | use memv instead of memq for string-replace check-in: d53b96b8b6 user: aldo tags: trunk | |
15:53 | added support for list of chars in string-split, added nest check-in: 37a97684bf user: aldo tags: trunk | |
2017-11-12
| ||
20:41 | added json->string check-in: 16dfcae804 user: aldo tags: trunk | |
Changes
Changes to thunder-utils.sls.
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
...
115
116
117
118
119
120
121
122
123
124
|
(export string-split string-replace bytevector-copy* read-string print-stack-trace sub-bytevector sub-bytevector=? load-bytevector save-bytevector) (import (scheme) (srfi s14 char-sets)) ;; POSSIBLE THAT NOT EXISTS THIS FUNCTION??? ;; s is a string , c is a character-set ;; null strings are discarded from result by default unless #f is specified as third argument (define string-split (case-lambda [(s c) (string-split s c #t)] [(s c discard-null?) (define res '()) (let loop ([l (string->list s)] [t '()]) (if (null? l) (if (and (null? t) discard-null?) res (append res (list (list->string t)))) (if (char-set-contains? c (car l)) (begin (unless (and (null? t) discard-null?) (set! res (append res (list (list->string t))))) (loop (cdr l) '())) (loop (cdr l) (append t (list (car l)))))))])) ;; POSSIBLE THAT THIS NOT EXIST? ................................................................................ (define (load-bytevector path) (call-with-port (open-file-input-port path) (lambda (p) (get-bytevector-all p)))) (define (save-bytevector path data) (call-with-port (open-file-output-port path) (lambda (p) (put-bytevector p data)))) );library |
<
|
|
>
>
>
>
>
>
>
>
>
>
>
>
|
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
...
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
|
(export string-split string-replace bytevector-copy* read-string print-stack-trace sub-bytevector sub-bytevector=? load-bytevector save-bytevector) (import (scheme) (srfi s14 char-sets)) ;; s is a string , c is a character-set or a list of chars ;; null strings are discarded from result by default unless #f is specified as third argument (define string-split (case-lambda [(s c) (string-split s c #t)] [(s c discard-null?) (define res '()) (let loop ([l (string->list s)] [t '()]) (if (null? l) (if (and (null? t) discard-null?) res (append res (list (list->string t)))) (if (or (and (char-set? c) (char-set-contains? c (car l))) (and (pair? c) (memv (car l) c))) (begin (unless (and (null? t) discard-null?) (set! res (append res (list (list->string t))))) (loop (cdr l) '())) (loop (cdr l) (append t (list (car l)))))))])) ;; POSSIBLE THAT THIS NOT EXIST? ................................................................................ (define (load-bytevector path) (call-with-port (open-file-input-port path) (lambda (p) (get-bytevector-all p)))) (define (save-bytevector path data) (call-with-port (open-file-output-port path) (lambda (p) (put-bytevector p data)))) (define-syntax (nest stx) (syntax-case stx () ((nest outer ... inner) (fold-right (lambda (o i) (with-syntax (((outer ...) o) (inner i)) #'(outer ... inner))) #'inner (syntax->list #'(outer ...)))))) );library |