CodeBlanks Logo Icon CodeBlanks

Saf fonksiyonlar

Yan etkisi olmayan, aynı girişe aynı çıktıyı veren saf fonksiyonları öğrenirsin.

Saf fonksiyonlar

Bir saf fonksiyon (pure function), aynı girdi her zaman aynı çıktıyı üretir ve dış dünyayı değiştirmez. Yan etkisi yoktur: dosya yazmaz, ekrana yazdırmaz, global değişkeni değiştirmez.

const add = (a, b) => a + b;

Bu fonksiyon safdır çünkü yalnızca a ve b'yi kullanır ve yeni bir değer döndürür. Aynı (2, 3) girdisi her zaman 5 verir. Bu özellik deterministik olmak olarak bilinir ve test etmeyi kolaylaştırır.

Yan etkiler

Bir yan etki (side effect), fonksiyonun dış dünyada gözlemlenebilir bir değişiklik yapmasıdır. Global bir değişkeni değiştirmek, ekrana yazdırmak, bir diziye push yapmak veya ağ isteği göndermek yan etkilerdir.

let total = 0;
function add(n) {
  total += n;
}

add saf değildir çünkü total değişkenini değiştirir. Aynı girdi farklı sonuçlar verebilir çünkü çağrı sayısına bağlıdır. Saf fonksiyonlar bu belirsizliği ortadan kaldırır ve kodun okunmasını kolaylaştırır.

Uygulama Saf bir tax fonksiyonu yaz

price adında bir parametre alan ve price değerini KDV oranıyla çarpan saf bir ok fonksiyonu yaz. Fonksiyonun adı tax olsun. Sonra console.log(tax(100)) çağrısı ile sonucu yazdır.

Başlangıç kodu

script.js
// tax adında saf bir ok fonksiyonu yaz
// price parametresini alır ve KDV ile çarpar
// tax(100) sonucunu console.log ile yazdır

Örnek çözüm

script.js
const tax = (price) => price * 1.2;
console.log(tax(100));

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 Hangisi saf fonksiyondur?

  • const double = (n) => n * 2; Doğru cevap
  • function roll() { return Math.random(); }
  • let total = 0; function add(n) { total += n; }
  • function log(msg) { console.log(msg); }

Açıklama: double yalnızca n'yi kullanır ve yeni değer döndürür; dış durumu değiştirmez.

2 Saf bir double fonksiyonu tamamla

Soru
const double = (n) => ____;
Cevap
const double = (n) => n * 2;

Açıklama: n * 2 yalnızca parametreyi kullanır, dış durumu değiştirmez.

3 Saf fonksiyon kavramlarını eşleştir

Kavram Anlamı
saf fonksiyon aynı girdi, aynı çıktı
yan etki dış durumu değiştirir
deterministik rastgelelik yok

İleri seviye bölümündeki tüm dersler