diff lib/ur/string.ur @ 2211:ef766ef6e242

Merge.
author Ziv Scully <ziv@mit.edu>
date Sat, 13 Sep 2014 19:16:07 -0400
parents 1a4b2b983889
children
line wrap: on
line diff
--- a/lib/ur/string.ur	Sat May 31 22:23:25 2014 -0400
+++ b/lib/ur/string.ur	Sat Sep 13 19:16:07 2014 -0400
@@ -86,3 +86,28 @@
 
 fun isPrefix {Full = f, Prefix = p} =
     length f >= length p && substring f {Start = 0, Len = length p} = p
+
+fun trim s =
+    let
+        val len = length s
+
+        fun findStart i =
+            if i < len && isspace (sub s i) then
+                findStart (i+1)
+            else
+                i
+
+        fun findFinish i =
+            if i >= 0 && isspace (sub s i) then
+                findFinish (i-1)
+            else
+                i
+
+        val start = findStart 0
+        val finish = findFinish (len - 1)
+    in
+        if finish >= start then
+            substring s {Start = start, Len = finish - start + 1}
+        else
+            ""
+    end