Apeluri multiple IIFE în JavaScript

Să presupunem că vi se propune o problemă complicată: să faceți mai multe paranteze de apel, astfel:

javascript(function() {
  // un cod oarecare
})()(); // mai multe paranteze de apelare

Dacă vă gândiți, devine evident că în acest caz, apelarea funcției imediate ar trebui să returneze o funcție anonimă, astfel:

javascript(function() {
  return function() {
    console.log('!');
  };
})()(); // va afișa '!'
Задание 1

Completați următorul cod astfel încât executarea lui să afișeze '!':

javascript(function() {
  // un cod oarecare
})()()();
Задание 2

Completați următorul cod astfel încât executarea lui să afișeze suma numerelor transmise ca parametri:

javascript(function() {
  // un cod oarecare
})(1)(2);
Задание 3

Completați următorul cod astfel încât executarea lui să afișeze suma numerelor transmise ca parametri:

javascript(function() {
  // un cod oarecare
})(1)(2)(3);