Challenge: Using a Curried Function

Test yourself and implement what you have learned so far in this challenge.

Problem Statement

You are given a curried function product that which calculates the product of the values of a function for the points on a given interval.

Your challenge is to create a non-recursive factorial function fact which uses the product function to compute the factorial of a number.

Input

The input will be an integer n.

Output

The output will be the factorial of n.

Sample Input

fact(5)

Sample Output

120

Test Yourself

Write your code in the given area. Try the exercise by yourself first, but if you get stuck, the solution has been provided. Good luck!

Press + to interact
def product(f: Int => Int)(a: Int, b: Int): Int ={
if(a > b) 1
else f(a) * product(f)(a+1,b)
}
def fact(n: Int) = {
// Write your code here
-1 // Remove this line after writing your code
}

Let’s go over the solution review in the next lesson.