Mercurial > urweb
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