Terminology
Learn the definitions of some prominent functional programming ideas discussed in the course.
We'll cover the following
Terminology used in the course
Functional programming is a vast field and has an elaborate lexicon. Below are definitions for some of the more prominent functional programming ideas discussed throughout the course:

Turing machine: An abstract computation model with memory that manipulates the contents of the memory in accordance with a set of rules.

Function: A relation that associates elements of a domain, or a set, to those of a codomain, or another set.

Arity: The number of arguments a function accepts.

Lambda calculus: A mathematical system developed by Alonzo Church premised on using abstraction and function application for computation that involves variable binding and substitution.

Abstraction: The detachment of mathematical ideas from particular situations and generalization of said concepts for a variety of usecases.

Function application: The act of applying a function to a value from a set of applicable values to generate a result in a set of possible return values.

Category theory: The study of the mathematical notion of categories, or subtle algebras that abstract reallife concepts.

Firstclass function support: A property of programming languages that enables support for the usage of functions in various fashions akin to variables usage, treating them as firstclass citizens.

Pure function: A function with no side effects or side causes.

Referential transparency: The barometer for function purity. This is the proof of whether a function always evaluates to the same output given the same input.

PHP userland: A buzzword for all the functions, variables, and objects contained in the PHP core distribution.

Variadic functions: Callable units of indefinite arity.

Boolean shortcircuiting: Instead of evaluating all terms of a boolean expression, stopping (or shortcircuiting) immediately after evaluating a subexpression that determines the truth or falsity of the expression.

Functor: A type class with contents that can be mapped over and adheres to the laws of identity and composition.

Fuzzing: A testing technique that involves feeding multiple inputs, mostly random and likely erroneous, into a program.

Monad: A versatile functor built atop polymorphic concepts that adheres to the laws of rightidentity, leftidentity, and associativity.

Type class: A composite data type that supports operator overloading.

Recursion: A function calling itself.

Pattern matching: A toptobottom, lefttoright algorithm to check a value against a sequence of tokens.

Property testing: A condition achievable by a threaded program that allows it to coexist in a threaded environment.

Thread: A dispatchable unit of work within a process.

Transducer: A composable higherorder algorithmic transformation usable on list structures.

Message broker: An architecture premised on relaying messages from senders to receivers through a messaging protocol.

Job worker: A script that usually runs in the background and processes message queue data.

Message queue: A queue optimized for asynchronous data passing between producers and consumers.

Temporal coupling: A situation in which two or more class methods, closely dependent on each other, require invocation in a particular order.

Thread safety: A condition achievable by a threaded program that allows it to exist in a threaded environment.

Union type: A composite algebraic data type (ADT) composed of multiple subtypes.
Get handson with 1200+ tech skills courses.