The result is useful in printed displays, as a way of making them more compact. The original list can be recovered by appying value to the elements of the result, and then using deepSplice, provided that x contains no entries that are sequences.
i1 : x = {1,2,3,a,b,c,a,b,c,4,4,4,"asdf"}; |
i2 : y = runLengthEncode x o2 = {1..3, 2:a..c, 3:4, asdf} o2 : List |
i3 : peek y o3 = {BinaryOperation{.., 1, 3}, BinaryOperation{:, 2, a..c}, ------------------------------------------------------------------------ BinaryOperation{:, 3, 4}, Holder{asdf}} |
i4 : value \ y o4 = {(1, 2, 3), ((a, b, c), (a, b, c)), (4, 4, 4), asdf} o4 : List |
i5 : deepSplice \\ oo o5 = {1, 2, 3, a, b, c, a, b, c, 4, 4, 4, asdf} o5 : List |
i6 : x === oo o6 = true |