kembali ke pelajaran

Penjumlahan dengan closure

Buatlah sebuah fungsi sum yang bekerja seperti ini: sum(a)(b) = a+b.

Ya, seperti ini, dengan kurung ganda (bukan salah ketik).

Sebagai contoh:

sum(1)(2) = 3
sum(5)(-1) = 4

Agar kurung kedua berhasil, yang pertama harus mengembalikan sebuah fungsi.

Seperti ini:

function sum(a) {

  return function(b) {
    return a + b; // mengambil "a" dari lingkungan leksikal luar
  };

}

alert( sum(1)(2) ); // 3
alert( sum(5)(-1) ); // 4