Вишеструки позиви IIFE у JavaScript-у

Претпоставимо да вам је дат необичан задатак: да направите вишеструке позивне заграде, овако:

javascript(function() {
  // неки код
})()(); // вишеструке позивне заграде

Ако размислите, постаје очигледно да у овом случају функција која се извршава на месту мора да врати анонимну функцију, овако:

javascript(function() {
  return function() {
    console.log('!');
  };
})()(); // исписаће '!'
Задание 1

Допуните следећи код тако да његово покретање испише '!':

javascript(function() {
  // неки код
})()()();
Задание 2

Допуните следећи код тако да његово покретање испише збир бројева прослеђених као параметри:

javascript(function() {
  // неки код
})(1)(2);
Задание 3

Допуните следећи код тако да његово покретање испише збир бројева прослеђених као параметри:

javascript(function() {
  // неки код
})(1)(2)(3);