Sep 9, 2021 JavaScript
How to memoize a function in JavaScript

In this Article we will go through how to memoize a function only using single line of code in JavaScript. This is a one-line JavaScript code snippet that uses one of the most popular ES6 features => Arrow Function.

Let's define this short function:

const memoize = fn => ((cache = {}) => arg => cache[arg] || (cache[arg] = fn(arg)))();

Sep 9, 2021 JavaScript
How to partially apply a function in JavaScript

In this Article we will go through how to partially apply a function only using single line of code in JavaScript. This is a one-line JavaScript code snippet that uses one of the most popular ES6 features => Arrow Function.

Let's define this short function:

const partial = (fn, ...a) => (...b) => fn(...a, ...b);

Sep 9, 2021 JavaScript
How to uncurry a function in JavaScript

In this Article we will go through how to uncurry a function only using single line of code in JavaScript. This is a one-line JavaScript code snippet that uses one of the most popular ES6 features => Arrow Function.

Let's define this short function:

const uncurry = (fn, n = 1) => (...args) => (acc => args => args.reduce((x, y) => x(y), acc))(fn)(args.slice(0, n));

Sep 9, 2021 JavaScript
How to compose functions from left to right in JavaScript

In this Article we will go through how to compose functions from left to right only using single line of code in JavaScript. This is a one-line JavaScript code snippet that uses one of the most popular ES6 features => Arrow Function.

Let's define this short function:

// Compose functions from left to right
const pipe = (...fns) => x => fns.reduce((y, f) => f(y), x);

Sep 9, 2021 JavaScript
How to compose functions in JavaScript

In this Article we will go through how to compose functions only using single line of code in JavaScript. This is a one-line JavaScript code snippet that uses one of the most popular ES6 features => Arrow Function.

Let's define this short function:

// Compose functions from right to left
const compose = (...fns) => x => fns.reduceRight((y, f) => f(y), x);

Sep 9, 2021 JavaScript
How to create a function that accepts a single argument in JavaScript

In this Article we will go through how to create a function that accepts a single argument only using single line of code in JavaScript. This is a one-line JavaScript code snippet that uses one of the most popular ES6 features => Arrow Function.

Let's define this short function:

const unary = fn => arg => fn(arg);

Sep 9, 2021 JavaScript
How to create an empty function in JavaScript

In this Article we will go through how to create an empty function only using single line of code in JavaScript. This is a one-line JavaScript code snippet that uses one of the most popular ES6 features => Arrow Function.

Let's define this short function:

const noop = () => {};

Sep 9, 2021 JavaScript
How to curry a function in JavaScript

In this Article we will go through how to curry a function only using single line of code in JavaScript. This is a one-line JavaScript code snippet that uses one of the most popular ES6 features => Arrow Function.

Let's define this short function:

const curry = (fn, ...args) => fn.length <= args.length ? fn(...args) : curry.bind(null, fn, ...args);

Sep 9, 2021 JavaScript
How to delay the evaluation of a function in JavaScript

In this Article we will go through how to delay the evaluation of a function only using single line of code in JavaScript. This is a one-line JavaScript code snippet that uses one of the most popular ES6 features => Arrow Function.

Let's define this short function:

// returns a new version of `fn` that returns values as lazy evaluable
const thunkfy = fn => (...args) => () => fn(...args);

Sep 9, 2021 JavaScript
How to box handler in JavaScript

In this Article we will go through how to box handler only using single line of code in JavaScript. This is a one-line JavaScript code snippet that uses one of the most popular ES6 features => Arrow Function.

Let's define this short function:

const boxHandler = x => ({ next: f => boxHandler(f(x)), done: f => f(x) });