Functional Programming Questions

Functional programming as a paradigm and a way of structuring code: pure functions and side-effect isolation (a pure core with effects at the edges, and how effects are described versus run), immutability and persistent data structures with structural sharing, updating nested immutable data including lenses, higher-order functions, function composition, currying and partial application, folds and recursion over data (including tail recursion), algebraic data types and pattern matching, total functions and Maybe/Either style error values, functors, applicatives and monads as patterns for composing effects and threading state, parser combinators as a worked example, lazy evaluation and lazy or streaming pipelines, and property-based testing of pure code. Covers reasoning about programs as composed transformations rather than mutable state, in a dedicated functional language such as Haskell or Scala, or in a multi-paradigm language such as JavaScript, TypeScript, Kotlin or Python. Boundary: closures and the this binding as language mechanics, the event loop and reactive streams, threads and STM-style concurrency, performance profiling, and exception or resource handling are covered elsewhere.

MediumTechnical
71 practiced

You are handed an imperative loop that builds a list of unique items in first-seen order using a mutable set. Rewrite it in a functional style with a fold or reduce and no mutation of the caller's data. What are the time and space trade-offs against the loop?

EasyTechnical
140 practiced

A function can fail. Compare returning an optional value, returning a result that carries an error, and throwing. When would you reach for a Result/Either type over Option/Maybe, and how do callers combine several such calls without nested null or error checks? Show a small example in a language you know.

EasyTechnical
92 practiced

Explain what a functor is without assuming Haskell. Using something you have used (Option/Maybe, a list, a Promise or a tree), show what 'mapping over a context' means, state the two laws a well-behaved map must obey, and say why breaking them hurts real code.

HardTechnical
88 practiced

You inherit a service where almost every business rule is tangled with database calls, HTTP requests and logging. How would you move it toward a pure core with effects at the edges? Walk through the incremental migration, how you would test the extracted logic, and when you would stop short of heavier abstractions.

MediumTechnical
91 practiced

You must transform a multi-gigabyte file of line-delimited records, parsing each, dropping invalid ones and writing JSON out, in constant memory. Design the pipeline using lazy or streaming constructs (generators, iterators, lazy sequences or a streaming library). Why does it avoid the memory blowup of reading everything first, and what breaks that property?

Unlock Full Question Bank

Get access to all 21 Functional Programming interview questions and detailed answers.

Sign in to Continue

Join thousands of developers preparing for their dream job.