equal
deleted
inserted
replaced
130 (*strings*) |
130 (*strings*) |
131 val nth_string: string -> int -> string |
131 val nth_string: string -> int -> string |
132 val fold_string: (string -> 'a -> 'a) -> string -> 'a -> 'a |
132 val fold_string: (string -> 'a -> 'a) -> string -> 'a -> 'a |
133 val exists_string: (string -> bool) -> string -> bool |
133 val exists_string: (string -> bool) -> string -> bool |
134 val forall_string: (string -> bool) -> string -> bool |
134 val forall_string: (string -> bool) -> string -> bool |
|
135 val member_string: string -> string -> bool |
135 val first_field: string -> string -> (string * string) option |
136 val first_field: string -> string -> (string * string) option |
136 val enclose: string -> string -> string -> string |
137 val enclose: string -> string -> string -> string |
137 val unenclose: string -> string |
138 val unenclose: string -> string |
138 val quote: string -> string |
139 val quote: string -> string |
139 val cartouche: string -> string |
140 val cartouche: string -> string |
701 fun ex i = i < n andalso (pred (String.substring (str, i, 1)) orelse ex (i + 1)); |
702 fun ex i = i < n andalso (pred (String.substring (str, i, 1)) orelse ex (i + 1)); |
702 in ex 0 end; |
703 in ex 0 end; |
703 |
704 |
704 fun forall_string pred = not o exists_string (not o pred); |
705 fun forall_string pred = not o exists_string (not o pred); |
705 |
706 |
|
707 fun member_string str s = exists_string (fn s' => s = s') str; |
|
708 |
706 fun first_field sep str = |
709 fun first_field sep str = |
707 let |
710 let |
708 val n = size sep; |
711 val n = size sep; |
709 val len = size str; |
712 val len = size str; |
710 fun find i = |
713 fun find i = |