Объект List
имеет метод mkString
, который может преобразовывать в строку с разделителем.Однако в большинстве человеческих языков последний элемент отличается при перечислении списка.Например, A, B, C и D.
Что является лучшим с точки зрения размера кода и разумной эффективности для достижения этой цели?Если быть точным, я ищу функцию, которая удовлетворяет:
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")))