去年我对标准ML有相当多的经验,但我在大约10个月内没有做过任何真正的函数式编程。现在我正在使用Scala,我在编写编译器时遇到了在标准ML中广泛使用的操作(尽管公平地说,这种方法可能不是库方法)。
基本上,我有两个清单:
List("a","b","c")
List(1,2,3)
我想要一个操作,它会给我一个像这样的元组列表:
List(("a",1), ("b",2), ("c",3))
我可以使用标准的Scala函数来获得此结果吗? (我认为我们称它为标准ML中的zip函数,但在我搜索Scala zip函数时,这似乎指的是不同的东西。)
答案 0 :(得分:42)
你是对的,你可以使用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))