December 2015
Intermediate to advanced
298 pages
5h 30m
English
A list holds a certain number of elements. The first element is at index 0, and the second element at index 1. If the index is out of range, we get an exception.
We will write a method to find the nth element of a list. This method will return an option. If n is out of bounds, we will return None. Otherwise, we will return Some(elem). Let's look at the code and then a diagram to understand it better:
import scala.annotation.tailrec object NthElemOfList extends App { def nth(list: List[Int], n: Int): Option[Int] = { @tailrec def nthElem(list: List[Int], acc: (Int, Int)): Option[Int] = list match { case Nil => None case head :: tail => { if (acc._1 == acc._2) // 1 Some(head) else nthElem(tail, (acc._1 + 1, acc._2)) ...Read now
Unlock full access