Problem 02

This commit is contained in:
2026-03-19 15:38:21 +01:00
parent 09af2a25e8
commit 9001e72a27
2 changed files with 26 additions and 0 deletions
@@ -0,0 +1,13 @@
package ninetyNineScalaProblems
object Problem02:
def lastButOneElement(list: List[Any]): Option[Any] =
list match
case l if l.length >= 2 => Some(list(l.length - 2))
case _ => None
object Problem02Stdlib:
def lastButOneElement(list: List[Any]): Option[Any] =
list.reverse match
case last :: lastButOne :: tail => Some(lastButOne)
case _ => None
@@ -0,0 +1,13 @@
package ninetyNineScalaProblems
class Problem02Suite extends munit.FunSuite:
List(
(List(1, 2, 3, 4, 5), Some(4)),
(List(1, 2), Some(1)),
(List(1), None),
(List(), None)
).foreach:
case (list, expected) =>
test(s"lastButOneElement returns [$expected]"):
assertEquals(Problem02.lastButOneElement(list), expected, "Problem02")
assertEquals(Problem02Stdlib.lastButOneElement(list), expected, "Problem02Stdlib")