summaryrefslogtreecommitdiff
path: root/scheme/aps/string-utils.sls
diff options
context:
space:
mode:
Diffstat (limited to 'scheme/aps/string-utils.sls')
-rw-r--r--scheme/aps/string-utils.sls16
1 files changed, 9 insertions, 7 deletions
diff --git a/scheme/aps/string-utils.sls b/scheme/aps/string-utils.sls
index 8e8aaf1..0d6b8c0 100644
--- a/scheme/aps/string-utils.sls
+++ b/scheme/aps/string-utils.sls
@@ -1,21 +1,23 @@
(library (aps string-utils)
(export string-split)
-(import (rnrs))
+(import (rnrs) (aps compat))
+;;STRING-SPLIT
+;; adapted from http://schemecookbook.org/Cookbook/StringSplit
+;; to match Python behaviour
(define (string-split str ch)
(define len (string-length str))
(define (split a b)
+ ;(printf "~a: ~a ~a\n" str a b)
(cond
((>= b len)
- (if (= a b) '()
+ (if (= a b) '("")
(list (substring str a b))))
((char=? ch (string-ref str b))
- (if (= a b) (split (+ 1 a) (+ 1 b))
+ (if (= a b) (let ((res (split (+ 1 a) (+ 1 b))))
+ (if (= 0 a) (cons "" res) res))
(cons (substring str a b) (split b b))))
(else (split a (+ 1 b)))))
(split 0 0))
+;;END
)
-
-;(display (string-split "a.b" #\.))
-;(display (string-split ".b" #\.))
-;(display (string-split "a." #\.))