aboutsummaryrefslogtreecommitdiffstats
path: root/strings.csc
diff options
context:
space:
mode:
Diffstat (limited to 'strings.csc')
-rw-r--r--strings.csc44
1 files changed, 21 insertions, 23 deletions
diff --git a/strings.csc b/strings.csc
index 963565c..0828363 100644
--- a/strings.csc
+++ b/strings.csc
@@ -1,8 +1,8 @@
(define-library (csc strings)
(export
- str-find
- str-not-found-error?
- str-prefix?
+ find
+ not-found-error?
+ prefix?
str-quote)
(import (scheme base)
(scheme case-lambda)
@@ -10,13 +10,12 @@
(begin
- (define str-prefix?
- (let ((str-prefix?' (lambda (prefix str start)
- (and (<= (string-length prefix) (- (string-length str) start))
- (string=? prefix (substring str start (+ start (string-length prefix))))))))
- (case-lambda
- ((prefix str) (str-prefix?' prefix str 0))
- ((prefix str start) (str-prefix?' prefix str start)))))
+ (define prefix?
+ (case-lambda
+ ((prefix str) (prefix? prefix str 0))
+ ((prefix str start)
+ (and (<= (string-length prefix) (- (string-length str) start))
+ (string=? prefix (substring str start (+ start (string-length prefix))))))))
(define (str-quote s)
@@ -25,18 +24,17 @@
(get-output-string out)))
- (define-record-type <str-not-found-error>
- (make-str-not-found-error)
- str-not-found-error?)
+ (define-record-type <not-found-error>
+ (make-not-found-error)
+ not-found-error?)
- (define str-find
- (let ((str-find' (lambda (match str start end)
- (let loop ((i start))
- (cond ((>= i end) (raise (make-str-not-found-error)))
- ((str-prefix? match str i) i)
- (else (loop (+ 1 i))))))))
- (case-lambda
- ((match str) (str-find' match str 0 (string-length str)))
- ((match str start) (str-find' match str start (string-length str)))
- ((match str start end) (str-find' match str start end)))))))
+ (define find
+ (case-lambda
+ ((match str) (find match str 0 (string-length str)))
+ ((match str start) (find match str start (string-length str)))
+ ((match str start end)
+ (let loop ((i start))
+ (cond ((>= i end) (raise (make-not-found-error)))
+ ((prefix? match str i) i)
+ (else (loop (+ 1 i))))))))))