mes: Add string-rindex.
authorJan Nieuwenhuizen <janneke@gnu.org>
Thu, 18 May 2017 22:41:01 +0000 (00:41 +0200)
committerJan Nieuwenhuizen <janneke@gnu.org>
Thu, 18 May 2017 22:41:01 +0000 (00:41 +0200)
* module/srfi/srfi-13.mes (string-rindex): New function.

module/srfi/srfi-13.mes

index 9579854d1405e1fbe67948a3557448bddb9c9d9f..3eed1bce63cd61aa9f1622cf7013687f54605b6e 100644 (file)
       (if (null? lst) #f
           (if (pred (car lst)) i
               (loop (cdr lst) (1+ i)))))))
+
+(define (string-rindex s pred . rest)
+  (let* ((start (and (pair? rest) (car rest)))
+         (end (and start (pair? (cdr rest)) (cadr rest)))
+         (pred (if (char? pred) (lambda (c) (eq? c pred)) pred)))
+    (if start (error "string-rindex: not supported: start=" start))
+    (if end (error "string-rindex: not supported: end=" end))
+    (let loop ((lst (reverse (string->list s))) (i (1- (string-length s))))
+      (if (null? lst) #f
+          (if (pred (car lst)) i
+              (loop (cdr lst) (1- i)))))))