Considered as values that can be manipulated and used in flexible ways Assigned to variables Passed as arguments to other functions A function can be the return value of another function Can store functions in data structures like Array, List, or Hash Map Programming Paradigms like Higher-Order Function Closure