L'oggetto List
ha il metodo mkString
che può essere convertito in una stringa con un separatore. Tuttavia la maggior parte dei linguaggi umani tratta l'ultimo elemento diverso quando si enumera una lista. Ad esempio A, B, C e D.Qual è il modo migliore per enumerare una lista in linguaggio naturale (Scala)?
Qual è il migliore in termini di dimensioni del codice e ragionevole efficienza per realizzare questo? Per essere precisi, che il mio per una funzione che soddisfa:
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")))
Ma per quanto riguarda l'Oxford Comma? http://en.wikipedia.org/wiki/Serial_comma –