How would you write a function that is like this
f()()
f('it') == fit
f()('x') == fox
I have
function f(s){
return "f"+s;
}
See Question&Answers more detail:osHow would you write a function that is like this
f()()
f('it') == fit
f()('x') == fox
I have
function f(s){
return "f"+s;
}
See Question&Answers more detail:osI had to discern what you're looking for not only from your question, but also from your comments. It looks like every string begins with 'f'
, and each empty bracket-pair appends an 'o'
. Finally, a non-empty bracket-pair appends its argument.
I actually think this is a cool metaprogramming challenge.
This should work:
let f = (str, depth=0) => str
? `f${'o'.repeat(depth)}${str}` // If given param, terminate
: str => f(str, depth + 1); // If no param, return func
// "fit"
console.log(f('it'));
// "fox"
console.log(f()('x'));
// "fortress"
console.log(f()('rtress'));
// "football"
console.log(f()()('tball'));
// "foooooool!!!"
console.log(f()()()()()()()('l!!!'));