M
Просто возвращается новая функция с одним параметром, а итоговая функция использует эти параметры других функций через замыкание, она их как бы зпоминает
Size: a a a
M
M
M
M
В
В
M
В
let curry = (fn) = (a) => (b) => (c) => (d) => fn(a, b, c, d);
let partial = (fn) => (a, b) => (c, d) => fn(a, b, c, d);
S
let curry = (fn) = (a) => (b) => (c) => (d) => fn(a, b, c, d);
let partial = (fn) => (a, b) => (c, d) => fn(a, b, c, d);
S
let curry = (fn) = (a) => (b) => (c) => (d) => fn(a, b, c, d);
let partial = (fn) => (a, b) => (c, d) => fn(a, b, c, d);
S
====================================================
M
let curry = (fn) = (a) => (b) => (c) => (d) => fn(a, b, c, d);
let partial = (fn) => (a, b) => (c, d) => fn(a, b, c, d);
N
M
M
DE
M
А
N
А