What Are Partial Applications?

tl;dr;

A Partial Application is a function where some or all of the arguments are packed inside, ready to go and it’s just waiting for a few more before the main function is invoked. They’re like functions that have default arguments, but are pure functions with a fixed amount of parameters.

Introduction

The following article and companion video playlist will cover what a partial application is and how it can be used for a more pure function option for default arguments. It’s assumed you know what pure functions are. We’ll cover:

  • basic function arguments
  • default arguments and how order can make them harder/easier to use
  • function arity
  • function currying with closures and show how the parameter order is reversed compared to default arguments
  • building partial applications to show how to make using default arguments pure
  • creating partial applications with no arguments
Continue reading “What Are Partial Applications?”

Functional Programming Unit Testing in Node – Part 5

Noops, Stub Soup, and Mountebank

Welcome to Part 5 where we cover more about noops with a utility to test them, the “stub soup” that can happen if you don’t create small pure functions, and how we can utilize stubs instead of mocks to unit test larger functions. The most important part, though, is setting up Mountebank to show how integration tests can show problems in your unit tests despite 100% coverage. We use wrapping class instances as an example to show you the pitfalls Object Oriented Programming code can make for you.
Continue reading “Functional Programming Unit Testing in Node – Part 5”