JavaScript Currying 2 - Tacit Programming Point-Free Style
September 11, 2020Tacid programming (i.e., Point-free style) is a programming paradigm, where function definition does not refer to the function arguments. Function declaration, on the other hand, requires any formal parameters to be declared. Every point-free function has its closure scope. The closure is created at the function creation time - when the function is invoked. Every form of the curried function is a form fo higher-order-function
index.js
const add = (a) => (b) => a + bconst incrementByOne = add(1) // partially applied functionincrementByOne(9) // => 10
When we create incrementByOne
with function call add(1)
, the a
parameter from add
function get fixed to 1
inside the returned function that gets assigned to incrementByOne
function. When we call incrementByOne
function with b
parameter fixed to 9
function application completes, and returns the sum of 1
and 9
.
index.js
// Another example of point-free style functionconst g = (n) => n + 1const f = (n) => n * 2const h = (x) => f(g(x))h(20) // => 42