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
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?

That is every published Functional Programming question for Data Engineer so far. Browse the other topics in this category, or practice this one interactively.