[Solved] To check whether my list fulfils the parameters set out in nested loop in scala function

[ad_1]

You can use pattern matching to determine which type of Array you’re dealing with.

def arrTest[A](a :Array[A]) :Boolean = a match {
  case sa :Array[String] =>
    sa.length < 2 || sa.sliding(2).forall(x => x(0) < x(1))
  case ia :Array[Int] =>
    ia.length > 2 &&
      ia(0) == 1 && ia(1) == 1 &&
      ia.sliding(3).forall(x => x(0) + x(1) == x(2))
  case _ => a.length == 3
}

usage:

arrTest(Array("John","Margaery"))          //true  (Strings in order)
arrTest(Array("John", "Basquiat", "Yoda")) //false (Strings out of order)
arrTest(Array(1,1,2,3,5,8,13))             //true  (Fibonacci Ints)
arrTest(Array('z', 'k', 'b'))              //true  (3 Chars, any order)
arrTest(Array(3.1, 4.4))                   //false (2 Doubles)

[ad_2]

solved To check whether my list fulfils the parameters set out in nested loop in scala function