Tenga en cuenta que la implementación de foldLeft supone una lista no vacía
Frawr
55
¡Gracias! En caso de que alguien quiera encerrar elementos de cadena entre comillas, mkString también es útil: theStrings.mkString ("'", "', '", "'")
Niko Gamulin
1
@Frawr Esa página enlaza con un montón de ejemplos oldfashionedsoftware.com/2009/07/30/… que incluye una implementación que utiliza la coincidencia de patrones para el caso de la lista vacía (Cero). Modificarlo para imitar mkString sería así: def mkFoldLeftString[A](list:List[String], delim:String = ","): String = list match { case head :: tail => tail.foldLeft(head)(_ + delim + _) case Nil => "" }
Respuestas:
¿Qué tal mkString ?
Existe una variante en la que también puede especificar un prefijo y sufijo.
Vea aquí una implementación usando foldLeft , que es mucho más detallado, pero que quizás valga la pena mirar por el bien de la educación.
fuente
def mkFoldLeftString[A](list:List[String], delim:String = ","): String = list match { case head :: tail => tail.foldLeft(head)(_ + delim + _) case Nil => "" }