map函数如何在scala中进行排序

Har*_*ran 3 collections scala

以下代码段

val keys=List(3,2,1,0)
val unsorted=List(1, 2, 3, 4)
val sorted =keys map unsorted
Run Code Online (Sandbox Code Playgroud)

基于的排序keys.

通常,map方法接受lambda并将其应用于源中的每个元素.相反,上面的代码采用一个列表并根据索引进行排序.

在这种特殊情况下发生了什么?

Łuk*_*asz 5

List 一个从索引到其值的部分函数.你可以这样看:

scala> List(3,2,1,0) map (i => List(1,2,3,4)(i))
res0: List[Int] = List(4, 3, 2, 1)
Run Code Online (Sandbox Code Playgroud)

核实

scala> val f: Int => Int = List(1, 2, 3, 4)
f: Int => Int = List(1, 2, 3, 4)
Run Code Online (Sandbox Code Playgroud)