# Functional Recursions

Tell us what’s happening:

Hi guys,

I do have a question, i have read the instructions, about a recursive function. A function that calls itself.

However, i dont really know how this works,

function sum(arr, n) {
if(n <= 0) {
return 0;
} else {
return sum(arr, n - 1) + arr[n - 1];
}
}

Can anyone explain the parameters?

And, what exactly is passed to the array? There is no array here (yet).

What is the “n”?
////////////////////////////////////////////////////////////
What i read is the following:
function sum(arr, n) {
// function called sum, has two parameters: “arr,” “n”
if(n <= 0) {
//if n is smaller and equal to zero
return 0;
//return 0
} else {
// else
return sum(arr, n - 1) + arr[n - 1];
//return sum (arr "n"minus one) + arr [n minus 1]?

/*
QUESTION
It really is this last line, what i think is too abstract. What does it imply, what does arr mean (there is no array here) and n minus one?, so the number is above 1, but how do we know what number it really is?
*/

}
}

``````
// function sum(arr, n) {
//   // Only change code below this line

//   // Only change code above this line
// }
function sum(arr, n) {
if(n <= 0) {
return 0;
} else {
return sum(arr, n - 1) + arr[n - 1];
}
}
``````

User Agent is: `Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.132 Safari/537.36`.

Challenge: Replace Loops using Recursion