# Arguments vs Parameters: What you need to know

***tdlr;* Functions have parameters, function calls have arguments.**

After positive reception from my article on [brackets/braces/parentheses](https://blog.imnick.dev/quick-programming-tips-brackets-braces-and-parentheses) I thought I would share another set of ambiguous terms with you; arguments and parameters!

While knowing the proper use of these terms isn’t particularly valuable to reduce miscommunication it is likely to improve your mental model of functional programming.  

**Parameters** are defined as part of a function or method signature (they are technically different things). `x` and `y` in the following would be considered “parameters”:
```tsx
function foo(x: number, y: number) {
   return x+y
}
```

**Arguments** are the variables or values that are passed into a function call. `a` and `b`in the following would be considered arguments:
```tsx
const a = 2;
const b = 3;

const sum = foo(a,b);
```
\*Note: `a` and `b` are only arguments in the last line when they within the  [parentheses](https://blog.imnick.dev/quick-programming-tips-brackets-braces-and-parentheses).

The key distinction is that a parameter can be any value but an argument is a specific value. Pointing this out to a colleague will probably just get you some eye rolls but knowing how to write functions with appropriate parameters and calling them with the matching arguments is integral to the paradigm of functional programming and appropriate terminology is a great place to start.



