Múltiples llamadas IIFE en JavaScript

Supongamos que te proponen un problema complicado: hacer varios paréntesis de llamada, así:

javascript(function() {
  // algún código
})()(); // varios paréntesis de llamada

Si lo pensamos, resulta obvio, que en este caso la llamada a función en el lugar debe retornar una función anónima, así:

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

Complete el siguiente código para que su ejecución muestre '!':

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

Complete el siguiente código para que su ejecución muestre la suma de los números pasados como parámetros:

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

Complete el siguiente código para que su ejecución muestre la suma de los números pasados como parámetros:

javascript(function() {
  // algún código
})(1)(2)(3);