Vícenásobné volání IIFE v JavaScriptu

Představte si, že dostanete záludný úkol: vytvořit několik volacích závorek, například takto:

javascript(function() {
  // nějaký kód
})()(); // několik volacích závorek

Když se zamyslíte, je zřejmé, že v tomto případě musí volání funkce na místě vracet anonymní funkci, například takto:

javascript(function() {
  return function() {
    console.log('!');
  };
})()(); // vypíše '!'
Задание 1

Doplňte následující kód tak, aby jeho spuštění vypsalo '!':

javascript(function() {
  // nějaký kód
})()()();
Задание 2

Doplňte následující kód tak, aby jeho spuštění vypsalo součet čísel předaných jako parametry:

javascript(function() {
  // nějaký kód
})(1)(2);
Задание 3

Doplňte následující kód tak, aby jeho spuštění vypsalo součet čísel předaných jako parametry:

javascript(function() {
  // nějaký kód
})(1)(2)(3);