Sobes.tech
Middle

Fonksiyonel programlama paradigması nedir?

sobes.tech yapay zeka

AI'dan gelen yanıt

Fonksiyonel programlama paradigması, temel yapı taşları olarak fonksiyonların kullanılması ilkesine dayanan bir yazılım inşa tarzıdır. Şunları vurgular:

  • Temiz fonksiyonlar: Aynı giriş verileriyle her zaman aynı sonucu döndüren ve yan etki yapmayan fonksiyonlar (dış durumu değiştirmezler).
  • Veri değişmezliği: Veriler oluşturulduktan sonra değiştirilemez. Her değişiklik yeni bir kopya oluşturur.
  • Birinci sınıf fonksiyonlar: Fonksiyonlar argüman olarak geçirilebilir, diğer fonksiyonlardan döndürülebilir ve değişkenlere atanabilir.
  • Değiştirilebilir durumun olmaması: Program, değiştirilebilir değişkenlerin kullanımını en aza indirmeye veya tamamen ortadan kaldırmaya çalışır.

Avantajlar:

  • Yan etki olmaması nedeniyle hata ayıklama ve testlerin basitleştirilmesi.
  • Değişmez verilerle çalışırken kilitleme gerekmediği için paralellik ve çok iş parçacığı performansının artırılması.
  • Daha okunabilir ve öngörülebilir kod.

Java'da fonksiyonel özellikler, Java 8'in ortaya çıkmasıyla şu özellikler aracılığıyla uygulanmıştır:

  • Lambda ifadeleri.
  • Fonksiyonel arayüzler.
  • Stream API.
  • Metot referansları.

Stream API kullanımıyla filtreleme ve dönüştürme örneği:

// Gerekli sınıfların ithali
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;

// Sayı listesi örneği
List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);

// Stream API kullanarak çift sayıları filtreleme ve 2 ile çarpma
List<Integer> processedNumbers = numbers.stream()
                                        .filter(n -> n % 2 == 0) // Çift sayıları filtrele
                                        .map(n -> n * 2)         // 2 ile çarp
                                        .collect(Collectors.toList()); // Sonucu yeni listeye topla

// Sonucu yazdır
// System.out.println(processedNumbers); // Çıktı: [4, 8, 12, 16, 20]