Comment on page

# Functional Programming

Code runs in a very linear fashion:
One line at a time, moving to the next.
The only method we have to repeat code is with a loop. This can create very long code files with a lot of repetition. What if you need to create a new mathematical operation and use it many times throughout the course of your program?
Functional Programming is a way of creating blocks (chunks) of code that you can use whenever you need. You can "call" a function that does some work and may or may not return a value.
We have been making calls to functions this entire time with `console.log()` and `Math.floor()` (for examples). When we ask the console to `log()` we have to put text inside the round brackets. The console prints out that text for us. When we call the `floor()` function, the huge chunk of code we call Math removes any decimals on the number we place inside the brackets of `floor()` and returns the new value.

### Parameters

The value(s) placed inside the brackets of a function are called parameters. They are also called inputs. Examples:
• `console.clear()` takes zero parameters - it just does the job
• `Math.floor()` takes one parameter - the value to floor
• `Math.floor(3.14159)` returns 3
• `Math.pow()` takes two parameters - the base and the exponent, separated by commas
• `Math.pow(2, 3)` returns 8
• `console.log()` takes any number of parameters, separated by commas.
• `console.log("The value %d is the floored value %f.", 3, 3.14159)`

### Return Values

Some functions (not all) give back data - a number, some text, an array, etc... This is called a return value. This value can either be used or ignored. Consider this - when you insert money into a vending machine, it returns either your money or a treat. When you throw money into a wish fountain, you do not receive anything tangible in return.
When a function returns a value, it is up to the programmer to decide how to use it.
Math.floor(6.87); // The output 6 will go NOWHERE
let ans = Math.floor(6.87); // The output 6 will be stored in the variable ans
console.log(Math.floor(6.87)); // The output 6 will go into the log() function
The real strength in functional programming is the ability to write your own functions.