Mercurial > urweb
comparison lib/ur/string.ur @ 1390:65fbb250b875
More string processing
author | Adam Chlipala <adam@chlipala.net> |
---|---|
date | Thu, 13 Jan 2011 10:02:50 -0500 |
parents | 9a721f0722d3 |
children | 2da693675de9 |
comparison
equal
deleted
inserted
replaced
1389:9a721f0722d3 | 1390:65fbb250b875 |
---|---|
8 | 8 |
9 val sub = Basis.strsub | 9 val sub = Basis.strsub |
10 val suffix = Basis.strsuffix | 10 val suffix = Basis.strsuffix |
11 | 11 |
12 val index = Basis.strindex | 12 val index = Basis.strindex |
13 fun sindex r = Basis.strsindex r.Haystack r.Needle | |
13 val atFirst = Basis.strchr | 14 val atFirst = Basis.strchr |
14 | 15 |
15 fun mindex {Haystack = s, Needle = chs} = | 16 fun mindex {Haystack = s, Needle = chs} = |
16 let | 17 let |
17 val n = Basis.strcspn s chs | 18 val n = Basis.strcspn s chs |
48 None => None | 49 None => None |
49 | Some i => Some (substring s {Start = 0, Len = i}, | 50 | Some i => Some (substring s {Start = 0, Len = i}, |
50 sub s i, | 51 sub s i, |
51 suffix s (i + 1)) | 52 suffix s (i + 1)) |
52 | 53 |
54 fun ssplit r = | |
55 case sindex r of | |
56 None => None | |
57 | Some i => Some (substring r.Haystack {Start = 0, Len = i}, | |
58 suffix r.Haystack (i + length r.Needle)) | |
59 | |
53 fun all f s = | 60 fun all f s = |
54 let | 61 let |
55 val len = length s | 62 val len = length s |
56 | 63 |
57 fun al i = | 64 fun al i = |