Functions: A rule that, for each element in some set A of inputs, assigns an output chosen from set B, but without necessarily using every member of B.
First-Class Objects: First-class objects (or values) are objects which may appear in expressions, be assigned to a variable, be assigned as arguments or be returned in function calls.
Function Application: The process of giving particular inputs to a function.
Composition of Functions: The combination of two functions to produce a new function that performs the two functions in a specified order
Filter: A higher-order function that processes a data structure, typically a list, in some order to produce a new data structure containing exactly those elements of the original data structure that match a given condition.
Functional Programming: A programming paradigm where programs are constructed through the application and composition of functions.
Higher Order Functions: Functions which take a function as an argument or return a function as a result, or both.
Reduce/Fold: A higher-order function which reduces a list of values to a single value by repeatedly applying a combining function to the list values
Append: Add an item to the end of a list.
Head-Tail Representation: A method of representing a list in two parts: a head which is the first element, and a tail which is itself a list of all the other elements