> Någon som var med och/eller
har
löst denna Kata i scala, har ni lust
> att dela med er av er lösning, jag skulle vilja jämföra och få
lite
>
idéer.
Något i den här stilen kanske:
object RomanNumeral {
val r
=
"IVXLCDM.".iterator.sliding(3, 2).withPartial(true).toArray
def conv(t: (Char, Int))
=
{
val s = r(t._2)
t._1 match {
case
'9' => s(0).toString + s(2)
case '4' => s take 2 mkString
case c => {
val n = c.toString.toInt
(if (n >= 5) s(1) else "") + s(0).toString * (n % 5)
}
}
}
def apply(n: Int) = {
require(n <= 3999)
((n.toString.reverse zipWithIndex) reverse) map conv mkString
}
}