Обратите внимание, что реализация foldLeft предполагает непустой список
Frawr
5
Спасибо! Если кто-то хочет заключить строковые элементы в кавычки, mkString также полезен: theStrings.mkString ("'", "', '", "'")
Нико Гамулин
1
@Frawr Эта страница ссылается на несколько примеров oldfashionedsoftware.com/2009/07/30/… которые включают реализацию, использующую сопоставление с шаблоном для случая пустого списка (Nil). Модификация его для имитации mkString будет выглядеть следующим образом: def mkFoldLeftString[A](list:List[String], delim:String = ","): String = list match { case head :: tail => tail.foldLeft(head)(_ + delim + _) case Nil => "" }
Ответы:
Как насчет mkString ?
Существует вариант, в котором вы также можете указать префикс и суффикс.
Смотрите здесь для реализации, использующей foldLeft , который является гораздо более многословным, но, возможно, стоит посмотреть ради образования.
источник
def mkFoldLeftString[A](list:List[String], delim:String = ","): String = list match { case head :: tail => tail.foldLeft(head)(_ + delim + _) case Nil => "" }