Here is an example of currying the calculation of the volume of a rectangular prism. This is textbook curry.

```
function volume(l, w, h) {
    return l * w * h;
}

function curriedVolume(length) {
    return function(width) {
        return function(height) {
            return height * width * length;
        }
    }
}

volume(2, 3, 4); // 24
curriedVolume(2)(3)(4); // 24

```

Here is a similar example except the non-curried function takes one parameter which is an object.

```
function volume(dimensions) {
    return dimensions.l * dimensions.w * dimensions.h;
}

function curriedVolume(dimension, finalDimensions={}) {
    Object.assign(finalDimensions, dimension);
    if (Object.keys(finalDimensions).length === 3) {
        return finalDimensions.l * finalDimensions.w * finalDimensions.h;
    }
    return function(dimension) {
        return curriedVolume(dimension, finalDimensions);
    }
}

volume({
    l: 2,
    w: 3,
    h: 4,
});
curriedVolume({ l: 2 })({ w: 3 })({ h: 4 }); // 24
curriedVolume({ w: 2, h: 3 })({ l: 4 }); // 24

```

Is this still considered "currying?" Is it valid?