Search code examples
scala

I am trying to check if a list is palindrome or not in scala through recursive method


object Checkingpalindrome { def main(args: Array[String]): Unit = {

val a:List[Int] = List(1,2,3,4,5,6,5,4,3,2,1)
println(isPalindrome(a))
def isPalindrome(list:List[Int]):Boolean =
{
  list match {
case Nil => true
//    case list(a) => true
case list => (list.head == list.last && isPalindrome(list.tail.init))
}
}

}

}`

Exception in thread "main" java.lang.UnsupportedOperationException: empty.init
    at scala.collection.TraversableLike$class.init(TraversableLike.scala:451)
    at scala.collection.AbstractTraversable.init(Traversable.scala:104)
    at com.dsm.optional.Checkingpalindrome$.isPalindrome$1(Checkingpalindrome.scala:16)
    at com.dsm.optional.Checkingpalindrome$.main(Checkingpalindrome.scala:7)
    at com.dsm.optional.Checkingpalindrome.main(Checkingpalindrome.scala)

Solution

  • You are missing

    case _ :: Nil => true