DEV Community

Discussion on: Currying in JavaScript

Collapse
 
iquardt profile image
Iven Marquardt • Edited

This is not partial application in its imperative meaning:

function sum(a) {
    return (b, c) => {
        return a * b * c
    }
}

sum(1);

It is a curried function that returns a multi-argument one.

Partial application is a dynamic concept of imperative programming. Here is a possible approach:

const partial = (f, ...args) => (...args_) =>
  f(...args, ...args_);

const sum = (a, b, c) =>
  a * b * c;

partial(sum, 1) (2, 3); // 6
Collapse
 
macsikora profile image
Pragmatic Maciej

How partial application have any imperative meaning? Partial application is just possibility of applying to function less arguments than function defines. If function is curried then partial application is just using this function property.