Múltiplas Chamadas IIFE em JavaScript

Suponha que você receba uma tarefa complicada: fazer vários parênteses de chamada, assim:

javascript(function() {
  // algum código
})()(); // vários parênteses de chamada

Se pensarmos bem, torna-se óbvio que, neste caso, a função imediatamente invocada deve retornar uma função anônima, assim:

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

Complete o código a seguir para que sua execução exiba '!':

javascript(function() {
  // algum código
})()()();
Задание 2

Complete o código a seguir para que sua execução exiba a soma dos números passados como parâmetros:

javascript(function() {
  // algum código
})(1)(2);
Задание 3

Complete o código a seguir para que sua execução exiba a soma dos números passados como parâmetros:

javascript(function() {
  // algum código
})(1)(2)(3);