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).
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.
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.