Множествени извиквания на IIFE в JavaScript

Да предположим, че ви предлагат сложна задача: да направите няколко извикващи скоби, ето така:

javascript(function() {
  // някакъв код
})()(); // няколко извикващи скоби

Ако помислим, става очевидно, че в този случай извикването на функция на място трябва да връща анонимна функция, ето така:

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

Довършете следния код така, че неговото стартиране да извежда '!':

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

Довършете следния код така, че неговото стартиране да извежда сумата на подадените като параметри числа:

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

Довършете следния код така, че неговото стартиране да извежда сумата на подадените като параметри числа:

javascript(function() {
  // някакъв код
})(1)(2)(3);