El objeto List
tiene el método mkString
que se puede convertir en una cadena con un separador. Sin embargo, la mayoría de los lenguajes humanos tratan el último elemento diferente al enumerar una lista. Por ejemplo A, B, C y D.¿Cuál es la mejor manera de enumerar una lista en lenguaje natural (Scala)?
¿Cuál es el mejor en términos de tamaño de código y eficiencia razonable para lograr esto? Para ser precisos, Estoy buscando una función que satisface:
assertEquals("",foo(List()))
assertEquals("A",foo(List("A")))
assertEquals("A and B",foo("List("A","B")))
assertEquals("A, B and C", foo(List("A","B","C")))
assertEquals("A, B, C and D", foo(List("A","B","C","D")))
¿Pero qué pasa con la coma de Oxford? http://en.wikipedia.org/wiki/Serial_comma –