From 9756eb0806aef63137ed53c7f78eee13aa3db9d7 Mon Sep 17 00:00:00 2001 From: Ben Sima Date: Fri, 1 Nov 2019 14:24:24 -0700 Subject: add buildHaskellApp nix function --- com/simatime/string.scm | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 com/simatime/string.scm (limited to 'com/simatime/string.scm') diff --git a/com/simatime/string.scm b/com/simatime/string.scm new file mode 100644 index 0000000..01c5a70 --- /dev/null +++ b/com/simatime/string.scm @@ -0,0 +1,24 @@ +(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 ))))) -- cgit v1.2.3