25

去年我在标准 ML 方面有相当多的经验,但我在大约 10 个月内没有做过任何真正的函数式编程。既然我加入了 Scala 潮流,我在编写编译器时很难找到在标准 ML 中广泛使用的操作(尽管公平地说,这种方法可能不是库方法)。

基本上,我有两个列表:

List("a","b","c")
List(1,2,3)

我想要一个操作,它会给我一个像这样的元组列表:

List(("a",1), ("b",2), ("c",3))

我可以使用标准 Scala 函数来获得此结果吗?(我认为我们在标准 ML 中将其称为 zip 函数,但当我搜索 Scala zip 函数时,这似乎指的是不同的东西。)

4

1 回答 1

49

没错,您可以使用 zip:

val a = List("a","b","c")
// a: List[String] = List(a, b, c)

val b = List(1,2,3)
// b: List[Int] = List(1, 2, 3)

a zip b  // beautified a.zip(b) 
//res0: List[(String, Int)] = List((a,1), (b,2), (c,3))
于 2013-05-07T15:57:10.847 回答