Functional Programming
Functional programming is a programming paradigm that treats computation as the evaluation of pure functions, emphasizing immutability, avoidance of side effects, and functions as first-class values, in contrast to imperative styles built around changing state.
26 resources across 2 libraries
Glossary Terms(19)
Elm
Elm is a purely functional programming language that compiles to JavaScript, designed for building reliable front-end web applications with no runtime exceptio…
F#
F# is a functional-first, statically typed programming language on the .NET platform, combining functional programming with object-oriented and imperative capa…
OCaml
OCaml is a statically typed, functional-first programming language from the ML family, known for its strong type system, performance, and use in compilers, for…
Erlang
Erlang is a functional, concurrent programming language designed for building massively fault-tolerant, distributed, real-time systems, originally created for…
Clojure
Clojure is a modern, functional dialect of Lisp that runs primarily on the Java Virtual Machine, emphasizing immutability and simplicity for building concurren…
Prolog
Prolog is a declarative, logic-based programming language in which programs are expressed as facts and rules, and computation proceeds by the language's engine…
Scheme
Scheme is a minimalist dialect of Lisp, created in the mid-1970s by Gerald Jay Sussman and Guy Steele, known for its small, elegant core syntax and emphasis on…
Common Lisp
Common Lisp is a general-purpose, multi-paradigm dialect of Lisp standardized in the 1980s, notable for its powerful macro system, dynamic development style, a…
Racket
Racket is a general-purpose, multi-paradigm programming language descended from Scheme, originally released as PLT Scheme, designed with particular emphasis on…
Haskell
Haskell is a purely functional, statically typed programming language named after logician Haskell Curry, distinguished by lazy evaluation, strong type inferen…
Functional Programming
Functional programming is a programming paradigm that treats computation as the evaluation of pure functions, emphasizing immutability, avoidance of side effec…
Object-Oriented Programming (OOP)
Object-oriented programming (OOP) is a programming paradigm that organizes code around objects — bundles of data (attributes) and behavior (methods) — using co…
Procedural Programming
Procedural programming is a programming paradigm that structures code as a sequence of step-by-step instructions organized into procedures (or functions), whic…
Recursion
Recursion is a programming technique in which a function solves a problem by calling itself on smaller subproblems, combined with a base case that stops the re…
Higher-Order Functions
A higher-order function is a function that takes one or more functions as arguments, returns a function as its result, or both.
Gleam
Gleam is a statically typed, functional programming language that compiles to Erlang bytecode (running on the BEAM virtual machine) or to JavaScript, designed…
Roc (language)
Roc is a fast, statically typed, purely functional programming language designed for making it easy to write reliable, performant software, currently under act…
Immutability
Immutability is a property of a data value or object that cannot be modified after it is created; instead of changing an immutable value in place, operations p…
Pure Function
A pure function is a function whose output depends only on its input arguments and which produces no observable side effects, such as mutating external state,…
Interview Questions(7)
What is Tail Recursion?
Tail recursion is a recursive call that is the very last operation in a function, with no pending work left to do after it returns, which lets a compiler or in…
What are Persistent Data Structures?
A persistent data structure preserves every previous version of itself after an update, so old versions remain fully accessible and queryable, typically implem…
What is a Functional Interface in OOP?
A functional interface is an interface that declares exactly one abstract method, which makes it a valid target type for a lambda expression or a method refere…
What is a Lambda Expression in OOP?
A lambda expression is a compact, anonymous block of code that represents an implementation of a functional interface — an interface with exactly one abstract…
What Is a Closure in JavaScript?
A closure is a function bundled together with references to the variables from its enclosing lexical scope, so the function keeps access to those variables eve…
What Is Currying in JavaScript?
Currying is the technique of transforming a function that takes multiple arguments into a sequence of functions that each take a single argument, returning a n…
map, filter, and reduce: How Do They Differ?
map transforms every element into a new array of the same length, filter selects a subset of elements into a new (possibly shorter) array based on a predicate,…