Observe que a implementação foldLeft assume uma lista não vazia
Frawr 24/10/2015
5
Obrigado! No caso de alguém quiser incluir elementos string entre aspas, mkString também é útil: theStrings.mkString ( " '", " ''", "')
Niko Gamulin
1
@Frawr Essa página contém links para vários exemplos oldfashionedsoftware.com/2009/07/30/…, que inclui uma implementação que usa correspondência de padrões para o caso da lista vazia (Nil). Modificá-lo para mkString imitar seria assim: def mkFoldLeftString[A](list:List[String], delim:String = ","): String = list match { case head :: tail => tail.foldLeft(head)(_ + delim + _) case Nil => "" }
Respostas:
E o mkString ?
Existe uma variante na qual você também pode especificar um prefixo e sufixo.
Veja aqui uma implementação usando foldLeft , que é muito mais detalhada, mas talvez valha a pena olhar em prol da educação.
fonte
def mkFoldLeftString[A](list:List[String], delim:String = ","): String = list match { case head :: tail => tail.foldLeft(head)(_ + delim + _) case Nil => "" }