scala - 在 Scala 中,检查数组是否单调的功能方法是什么?

标签 scala

我有一个数组 val x : Array[Double] 并且想检查作为所有 x(i) <= x(i+1) 的每个 i 的函数的先决条件。在 Scala 中使用函数式编程的方法是什么。我寻找例如foldLeftfoldRight 但它们累积而不是访问每对相邻元素。

最佳答案

考虑一下:

def isMonotonic(arr:Array[Int]) = 
   if (arr.isEmpty) true
   else (arr, arr.tail).zipped.forall {case (a,b) => a <= b}

简化的解决方案(感谢@som-snytt):
def isMonotonic(arr:Array[Int]) = 
   (arr, arr.drop(1)).zipped.forall (_ <= _)

关于scala - 在 Scala 中,检查数组是否单调的功能方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39341956/

相关文章:

java - Eclipse识别包

scalatra 2.2.0升级遇到NoClassDefFoundError :GenTraversableLike

scala - 为什么这个 flatMap 会失败?

java - Scala + OpenJFX + OpenJDK

scala - 带有 scala 宏的非 scala 源位置

android - 找不到 android.support.v4.widget.DrawerLayout 的类文件 - Intellij (UI 14.141.1192.2)

scala - 如何对值求和并按 Scala map 列表中的键值对它们进行分组?

java - 多次调用时,ensureIndex() 命令在 java/scala mongo 驱动程序中执行什么操作

scala - Scala 的 SBT 中的默认日志文件在哪里?

scala - 通过属性从 Scala Seq(列表)获取元素