Split a character string based on change of character: Difference between revisions
Content added Content deleted
(added Tcl) |
(Implementation in Standard ML) |
||
Line 540: | Line 540: | ||
g, HHH, 5, YY, ++, ///, \ |
g, HHH, 5, YY, ++, ///, \ |
||
</pre> |
</pre> |
||
=={{header|Standard ML}}== |
|||
<lang sml>(* |
|||
* Head-Tail implementation of grouping |
|||
*) |
|||
fun group' ac nil = [ac] |
|||
| group' nil (y::ys) = group' [y] ys |
|||
| group' (x::ac) (y::ys) = if x=y then group' (y::x::ac) ys else (x::ac) :: group' [y] ys |
|||
fun group xs = group' nil xs |
|||
fun groupString str = String.concatWith ", " (map implode (group (explode str)))</lang> |
|||
{{out}} |
|||
<pre>- groupString "gHHH5YY++///\\"; |
|||
val it = "g, HHH, 5, YY, ++, ///, \\" : string</pre> |
|||
=={{header|Tcl}}== |
=={{header|Tcl}}== |