Functional programming is a style of computer programming that is based upon the evaluation of mathematical functions. It is a declarative style of programming, meaning that it uses clearly-defined logical expressions, but does not explicitly state what the computer should do at each step. An axiom of functional programming is that a function should return the same result for any given set of arguments. Functions adhere to this concept, "same arguments, same result", no matter how many times the function is evaluated.
A common feature of functional programming is immutable objects). When the value of an immutable object is set, it cannot be changed. Instead, copies of the object are created and modified. Using this approach increases data security and simplifies the process of debugging.