function createMultiplier(factor) {
return function(number) {
return number * factor;
};
}
const double = createMultiplier(2);
const triple = createMultiplier(3);
console.log(double(5)); // 10
console.log(triple(5)); // 15
function createValidator(condition) {
return function(value) {
return condition(value);
};
}
const isAdult = createValidator(age => age >= 18);
const isValidName = createValidator(name => name.length > 2);
function withLogging(fn) {
return function(...args) {
console.log(`Calling ${fn.name} with:`, args);
const result = fn(...args);
console.log(`Result:`, result);
return result;
};
}