# Challenge: Using a Curried Function

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

## We'll cover the following

## 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!

def product(f: Int => Int)(a: Int, b: Int): Int ={if(a > b) 1else 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.