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]