Functional Programming in PowerShell

Clean, concise PowerShell using functional abstractions

Christopher Kuech
The Startup

--

Part 1 of Declarative DevOps Microframeworks

PowerShell isn’t a purely functional language, but PowerShell very elegantly integrates some functional concepts into its semantics. By leveraging Functional Programming concepts in PowerShell, you will be able to spend more time writing clean idiomatic PowerShell and less time reverse engineering your scripts.

Improve the flow of your programs by applying Functional Programming patterns

Functional vs Imperative

Functional Programming is often contrasted to Imperative Programming. Functional Programming encourages maintaining logic in functions that the interpreter evaluates, while Imperative Programming encourages maintaining logic as a sequence of statements that the interpreter evaluates. The difference between these two paradigms results in differing patterns, benefits, and performance considerations.

Patterns

Functional Programming style encourages several patterns that can be implemented in PowerShell, such as —

  • Pure functions, where the function is solely dependent on its input and therefore always has the same output. For example, square is a pure function, as the output is solely in terms of $x.

--

--