Giriş

Matematik geçmişi olan biri için programlamaya geçiş genellikle "sıfırdan yeni bir dil" gibi sunulur. Oysa fonksiyonlar, kümeler ve dönüşümler gibi tanıdık kavramlar JavaScript'te de karşımıza çıkar.

Fonksiyonlar Vatandaştır

JavaScript'te fonksiyonlar birinci sınıf değerlerdir — tıpkı matematikte bir fonksiyonu başka bir fonksiyona girdi olarak verebilmemiz gibi ($g(f(x))$ bileşkesi gibi düşünün).

JavaScript
const kare = (x) => x ** 2;
const birEkle = (x) => x + 1;

// Fonksiyon bileşkesi: matematikteki (g ∘ f)(x) = g(f(x)) ile birebir aynı fikir
const bileske = (f, g) => (x) => g(f(x));

const kareSonraBirEkle = bileske(kare, birEkle);
console.log(kareSonraBirEkle(3)); // 3² + 1 = 10

Küme İşlemleri

JavaScript'in yerleşik Set nesnesi, matematikteki küme kavramını (tekrar etmeyen elemanlar) doğrudan karşılar; birleşim ve kesişim işlemleri birkaç satırda ifade edilebilir.

JavaScript
const A = new Set([1, 2, 3, 4]);
const B = new Set([3, 4, 5, 6]);

const birlesim = new Set([...A, ...B]);
const kesisim = new Set([...A].filter((x) => B.has(x)));

console.log([...birlesim]); // [1, 2, 3, 4, 5, 6]
console.log([...kesisim]);  // [3, 4]

ÖRNEK

map, bir kümenin her elemanına bir fonksiyon uygulayıp yeni bir küme üretmenin (matematikteki $f: A \to B$ dönüşümünün) doğrudan programlama karşılığıdır.

Sonuç

Programlamayı "yeni bir dünya" olarak değil, zaten bildiğiniz matematiksel kavramların farklı bir gösterimi olarak görmek, öğrenme sürecini önemli ölçüde hızlandırır.