【发布时间】:2021-07-02 00:04:21
【问题描述】:
我有一个练习来检查两个相邻的元素是否使用 sliding,map,reduceLeft 进行排序。例如:
val seq1 = Seq(1,2,2,4)
isOrdered(seq1)(_ < _) == false
isOrdered(seq1)(_ <= _) == true
def isOrdered[A](seq: Seq[A])(leq: (A,A) => Boolean): Boolean = {
}
老实说,我不知道从什么开始。
【问题讨论】:
-
好的,我的第一个想法是使用滑动(2),所以我有 List(List(1,2), List(2,2), List(2,4)) 但如何现在比较一下?
-
我也尝试过扁平化一个列表,所以我想要一个元组:List((1,2),(2,2),(2,4)) 使用:
val seq= Seq(1,2,2,4) val seqSlided = seq.sliding(2).toSeq val seqTupled = seqSlided match { case List(a,b)::rest => (a,b)::rest }但我的结果是 List((1,2), List(2,2), List(2,4)) 所以它只适用于 List 中的第一个。
标签: scala functional-programming