15 lines
512 B
Scala
15 lines
512 B
Scala
package ninetyNineScalaProblems
|
|
|
|
import scala.annotation.tailrec
|
|
|
|
object Problem10:
|
|
def runLengthEncode(list: List[Any]): List[Tuple2[Int, Any]] =
|
|
@tailrec
|
|
def loop(cursor: List[List[Any]], acc: List[Tuple2[Int, Any]]): List[Tuple2[Int, Any]] =
|
|
cursor match
|
|
case d :: tail =>
|
|
loop(tail, (d.length, d(0)) :: acc)
|
|
case Nil =>
|
|
acc
|
|
|
|
loop(Problem09.consecutiveDuplicatesIntoSublists(list), List()).reverse |