(define-module (com simatime string) #:export (replace to-string str capitalize)) (define (replace s match repl) (let ((f (lambda (a b) (let ((next-char (if (eq? a match) repl a))) (string-concatenate (list b (string next-char))))))) (string-fold f "" s))) (define (to-string x) (format #f "~a" x)) (define str (case-lambda (() "") ((x) (to-string x)) ((x . rest) (string-concatenate (map str (cons x rest)))))) (define (capitalize s) (let ((s (to-string s))) (if (< (string-length s) 2) (string-upcase s) (str (string-upcase (substring s 0 1)) (substring s 1 )))))