tasks a-s
This commit is contained in:
parent
47bf37c096
commit
b83f433714
12433 changed files with 156208 additions and 123 deletions
17
Task/Run-length-encoding/Standard-ML/run-length-encoding.ml
Normal file
17
Task/Run-length-encoding/Standard-ML/run-length-encoding.ml
Normal file
|
|
@ -0,0 +1,17 @@
|
|||
fun encode str =
|
||||
let
|
||||
fun aux (sub, acc) =
|
||||
case Substring.getc sub
|
||||
of NONE => rev acc
|
||||
| SOME (x, sub') =>
|
||||
let
|
||||
val (y, z) = Substring.splitl (fn c => c = x) sub'
|
||||
in
|
||||
aux (z, (x, Substring.size y + 1) :: acc)
|
||||
end
|
||||
in
|
||||
aux (Substring.full str, [])
|
||||
end
|
||||
|
||||
fun decode lst =
|
||||
concat (map (fn (c,n) => implode (List.tabulate (n, fn _ => c))) lst)
|
||||
Loading…
Add table
Add a link
Reference in a new issue