Perhatikan bahwa implementasi foldLeft mengasumsikan daftar tidak kosong
Frawr
5
Terima kasih! Jika ada yang ingin menyertakan elemen string dalam tanda kutip, mkString juga membantu: theStrings.mkString ("'", "', '", "'")
Niko Gamulin
1
@Frawr Halaman itu menautkan ke sekumpulan contoh oldfashionedsoftware.com/2009/07/30/... yang mencakup implementasi yang menggunakan pencocokan pola untuk kasus daftar kosong (Nihil). Mengubahnya menjadi mkic mkString akan seperti ini: def mkFoldLeftString[A](list:List[String], delim:String = ","): String = list match { case head :: tail => tail.foldLeft(head)(_ + delim + _) case Nil => "" }
Jawaban:
Bagaimana dengan mkString ?
Ada varian di mana Anda dapat menentukan awalan dan sufiks juga.
Lihat di sini untuk implementasi menggunakan foldLeft , yang jauh lebih bertele-tele, tapi mungkin layak untuk dilihat demi pendidikan.
sumber
def mkFoldLeftString[A](list:List[String], delim:String = ","): String = list match { case head :: tail => tail.foldLeft(head)(_ + delim + _) case Nil => "" }