aboutsummaryrefslogtreecommitdiffstats
path: root/strings.csc
diff options
context:
space:
mode:
authorRose Hogenson <rhogenson@posteo.net>2022-01-09 16:28:52 -0800
committerRose Hogenson <rhogenson@posteo.net>2022-01-09 16:28:52 -0800
commitb482a919615c0a5755a6828ad77d13e6c1b8b7a2 (patch)
treef9e6f6b5e2766e441fbde7acafd4f98e0476dee5 /strings.csc
parentRedo the testing framework. (diff)
downloadchromatopelma-b482a919615c0a5755a6828ad77d13e6c1b8b7a2.tar.zst
Remove str- prefixes from the strings library.
Not very scheme.
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))))))))))