prototype and patch: A development plan that involves writing a rough draft of a program, testing, and correcting errors as they are found.
planned development: A development plan that involves high-level insight into the problem and more planning than incremental development or prototype development.
pure function: A function that does not modify any of the objects it receives as arguments. Most pure functions are fruitful.
modifier: A function that changes one or more of the objects it receives as arguments. Most modifiers are fruitless.
functional programming style: A style of program design in which the majority of functions are pure.
invariant: A condition that should always be true during the execution of a program.