diff options
Diffstat (limited to 'lib/ur/string.ur')
-rw-r--r-- | lib/ur/string.ur | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/lib/ur/string.ur b/lib/ur/string.ur index a93f7a57..59a8e5c5 100644 --- a/lib/ur/string.ur +++ b/lib/ur/string.ur @@ -10,6 +10,7 @@ val sub = Basis.strsub val suffix = Basis.strsuffix val index = Basis.strindex +fun sindex r = Basis.strsindex r.Haystack r.Needle val atFirst = Basis.strchr fun mindex {Haystack = s, Needle = chs} = @@ -50,6 +51,12 @@ fun msplit {Haystack = s, Needle = chs} = sub s i, suffix s (i + 1)) +fun ssplit r = + case sindex r of + None => None + | Some i => Some (substring r.Haystack {Start = 0, Len = i}, + suffix r.Haystack (i + length r.Needle)) + fun all f s = let val len = length s |