Need help with a Scala programming problem: object fp1 { // EXAMPLE: here is the
ID: 3880054 • Letter: N
Question
Need help with a Scala programming problem:
object fp1 {
// EXAMPLE: here is the definition of the factorial function.
def fact (n : Int) : Int = {
if (n <= 1)
1
else
n * fact (n - 1)
}
RULES *1. Submissions MUST compile using SBT with UNCHANGED configuration and tests with no compilation errors. Submissions with compilation errors will receive 0 points Note that refactoring the code will cause the tests to fail. *2. You MUST NOT edit the SBT configuration and tests. Altering it in your *result in 0 points for this assignment. 3. You MUST NOT use while loops or (re)assignment to variables (you can submission will use "val" declarations but not "var" declarations) You must use recursion instead. *4. You may declare auxiliary functions if you like.Explanation / Answer
def max(xs: List[Int]): Int = {
@tailrec
def findmax(xs: List[Int], Max: Int): Int = {
xs match {
case Nil => Max
case x :: tail =>
val newMax = if (x > Max) x else Max
findmax(tail, newMax)
}
}
findmax(xs, 0)
}