# Learning About Function Programming lesson 1

Please explain why the way I call the function for 40 tea works.
The argument request is not located with the function when i call it.
See code below.
I am trying to understand the line that has the following code:
“const tea4TeamFCC = getTea(40); // :(”

``````/**
* A long process to prepare tea.
* @return {string} A cup of tea.
**/
const prepareTea = () => 'greenTea';

/**
* Get given number of cups of tea.
* @param {number} numOfCups Number of required cups of tea.
* @return {Array<string>} Given amount of tea cups.
**/
const getTea = (numOfCups) => {
const teaCups = [];

for(let cups = 1; cups <= numOfCups; cups += 1) {
const teaCup = prepareTea();
teaCups.push(teaCup);
}

return teaCups;
};

const tea4TeamFCC = getTea(40); // :(

console.log(tea4TeamFCC);
``````

Hi!
There are two things happening here. The first one

``````const getTea(numOfCups) => { ... return teaCups }
``````

defines the function getTea. It describes how the output teaCups is computed for any given input numOfCups. But nothing actually gets computed at this point.

The line

``````const tea4TeamFCC = getTea(40);
``````

is where the function gets called. So for the concrete input teaCups=40 a concrete output is computed. This output is then saved in the variable tea4TeamFCC.

You can think of it like of the definition of a mathematical function f(x)=x² and its concrete usage f(5)=25.

I hope that helps.