Sobes.tech
Junior — Middle

Fonksiyonel programlamanın temel ilkeleri ve yaklaşımları hakkında açıklama yapabilir misiniz?

sobes.tech yapay zeka

AI'dan gelen yanıt

Fonksiyonel programlama (FP), fonksiyonları temel yapı taşları olarak kullanan ve durum değişikliği ile yan etkilerden kaçınan bir programlama paradigmasıdır.

FP'nin temel ilkeleri ve yaklaşımları:

  • Saf fonksiyonlar: Bir fonksiyon, aynı giriş verileriyle her zaman aynı sonucu döner ve dış durumu değiştirmez.
  • Değişmezlik (immutability): Veriler oluşturulduktan sonra değişmez, bunun yerine değişikliklerle yeni kopyalar oluşturulur.
  • Yüksek dereceli fonksiyonlar: Diğer fonksiyonları argüman olarak alan veya döndüren fonksiyonlar.
  • Döngüler yerine özyineleme: İşlemleri tekrar etmek için sıklıkla özyineleme kullanılır.
  • Yan etkilerin olmaması: Fonksiyonlar dış değişkenleri, dosyaları, veritabanlarını vb. değiştirmemelidir.

C++ örneği (lambda fonksiyonları kullanarak):

#include <iostream>
#include <vector>
#include <algorithm>

int main() {
    std::vector<int> sayilar = {1, 2, 3, 4, 5};
    
    // Yüksek dereceli fonksiyon: std::for_each'e lambda fonksiyonunu geçmek
    std::for_each(sayilar.begin(), sayilar.end(), [](int n) {
        std::cout << n * 2 << " ";
    });
    
    return 0;
}

Burada orijinal vektörü değiştirmiyoruz, sadece her öğeye bir fonksiyon uygulayarak çıktı alıyoruz, bu da fonksiyonel yaklaşımın ilkelerine uygundur.