JavaScriptにおける複数の即時関数呼び出し

次のような難しい課題を出されたとしましょう: 複数の呼び出し括弧を作成する、次のように:

javascript(function() {
  // 何らかのコード
})()(); // 複数の呼び出し括弧

よく考えてみると、この場合、即時関数は 無名関数を返さなければならないことが明らかになります。 次のように:

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

次のコードを、実行時に '!' が 出力されるように完成させてください:

javascript(function() {
  // 何らかのコード
})()()();
Задание 2

次のコードを、実行時にパラメータとして渡された 数値の合計が出力されるように完成させてください:

javascript(function() {
  // 何らかのコード
})(1)(2);
Задание 3

次のコードを、実行時にパラメータとして渡された 数値の合計が出力されるように完成させてください:

javascript(function() {
  // 何らかのコード
})(1)(2)(3);