Category: JavaScript

  • Real World Uses of Tacit Programming: Part 1 of 2

    Real World Uses of Tacit Programming: Part 1 of 2

    Introduction

    Tacit Programming, also called point-free style, is a way to write functions without specifying the arguments. While functional programming languages have more abilities to leverage this style, there is still two key things you can use point-free style to help with in JavaScript, Python, and Lua that I wanted to cover today. Specifically reducing the amount of arguments for functions, and aiding in composition by writing less code.
    (more…)

  • Promises That Don’t Fail

    Promises That Don’t Fail

    Introduction

    My co-worker, Jason Kaiser, created a way for Promises not to fail, called sureThing. It has 3 benefits to your code that we’ll illustrate below including prior art in other programming languages so you know this isn’t some made-up concept.

    (more…)

  • Pure Function vs. Total Function

    Pure Function vs. Total Function

    A pure function:

    const add = (a, b) => a + b
    

    vs. a total function:

    const addNumbers = (a, b) =>
      ( isNumber(a) && isNumber(b) )
      ? {ok: true, data: a + b}
      : {ok: false, error: new Error(Either a or b aren't Numbers.)}
    

    While same input, same output, no side effects sounds like the end all, be all… it’s not.

    (more…)

  • Functional Programming Unit Testing in Node – Part 6

    Functional Programming Unit Testing in Node – Part 6

    Next, Logging, and Conclusions

    Welcome to Part 6, the final installment in this series. Below we cover unit testing the noop next, how to create pure functions that wrap noop so you can compose them, and finally using code coverage to strategically hit the last code that’s not covered.
    (more…)