获取列表成员之间的差异

Gav*_*vin 3 collections scala

我有一个值列表,并希望将其减少到连续成员之间的差异列表.有没有比我想出的更好的方法(琐碎的例子)?

val l1 = List(1,2,3,4,5,6)

val diffs = (l1 zip l1.drop(1)).map{case (x,y) => y - x}.sum
Run Code Online (Sandbox Code Playgroud)

Lui*_*hys 9

我确定我之前已经回答了一个类似的问题,但我找不到它.无论如何,尝试zipped它更高效,并提供更好的语法:

(l1 drop 1, l1).zipped.map(_-_).sum
Run Code Online (Sandbox Code Playgroud)


teh*_*exx 5

我喜欢sliding用于这个用例:

val l1 = List(1,2,3,4,5,6)
val diffs = l1.sliding(2).map{case List(x, y) => x - y}.sum
Run Code Online (Sandbox Code Playgroud)

在这里试试吧.