Crystal El Kitabı
  • Crystal El Kitabı: Sadelik ve Güç Bir Arada
  • Bölüm 1: Başlangıç
  • Bölüm 2: Crystal Dilinin Temelleri
  • Bölüm 3: Nesne Yönelimli Programlama (OOP)
  • Bölüm 4: Fonksiyonel Programlama
  • Bölüm 5: Gelişmiş Konular
  • Bölüm 6: Crystal ile Web Geliştirme
  • Bölüm 7: Crystal ile Proje Yönetimi ve Paket Yönetimi
  • Bölüm 8: Test Yazma ve Hata Ayıklama
  • Bölüm 9: Gerçek Dünya Projeleri
  • Ekler
  • Teşekkürler
  • Bana Ulaşın
Powered by GitBook
On this page

Bölüm 4: Fonksiyonel Programlama

Fonksiyonel programlama, bir programı bir dizi fonksiyon olarak düşünmeyi ve global durum değişikliklerinden kaçınmayı içeren bir programlama paradigmasıdır. Bu bölümde, Crystal dilinde fonksiyonel programlamanın nasıl uygulanacağını ve Ruby ile olan benzerliklerini sade, anlaşılır ve açıklayıcı bir dille öğreniyor olacağız.

4.1 Fonksiyonlar

Crystal dilinde fonksiyonlar, def anahtar kelimesi ile tanımlanır. Fonksiyonlar, belirli bir işlevi yerine getiren kod bloklarıdır.

def selamla(isim : String)
  puts "Merhaba #{isim}"
end

selamla("Deniz")

Ruby dilinde de fonksiyonlar aynı şekilde def anahtar kelimesi kullanılarak tanımlanır, bu Crystal'a başlangıç yaparken Ruby bilgisinin avantaj sağlayacağı bir alan.

4.2 İlk Vatandaş Fonksiyonlar (First Class Citizen Functions)

Crystal dilinde, fonksiyonlar "ilk vatandaş"tır, yani bir fonksiyon başka bir fonksiyona parametre olarak geçirilebilir ve bir fonksiyon başka bir fonksiyonu döndürebilir.

def uygula(x, y, fonk)
  fonk.call(x, y)
end

topla = ->(x, y) { x + y }
puts uygula(5, 3, topla) # Çıktı: 8

Ruby dilinde de lambda ve Proc nesneleri kullanılarak benzer işlevler gerçekleştirilebilir, bu da iki dil arasındaki bir başka benzerliktir.

4.3 Yüksek-Düzey Fonksiyonlar (High-order Function)

Yüksek düzey fonksiyonlar, diğer fonksiyonları parametre olarak alabilen ve/veya bir fonksiyonu sonuç olarak dönebilen fonksiyonlardır.

[1, 2, 3, 4].map(&.to_s) # ["1", "2", "3", "4"]

Ruby dilinde de yüksek düzey fonksiyonlar kullanılarak işlemler gerçekleştirilebilir, bu da Crystal öğrenirken Ruby deneyiminizin size yardımcı olacağı bir diğer noktadır.

4.4 Durumsuzluk ve Yan Etkisizlik (Stateless and no Side Effects)

Fonksiyonel programlama, fonksiyonların durumsuz ve yan etkisiz olmasını önerir. Bu, bir fonksiyonun her zaman aynı girdi için aynı çıktıyı üretmesi gerektiği anlamına gelir.

def topla(x, y)
  x + y
end

puts topla(2, 3) # Çıktı: 5

Ruby'de de aynı prensip geçerlidir, bu da Crystal ve Ruby arasındaki bir diğer benzerlik.

4.5 Sonuç

Bu bölümde, fonksiyonel programlamanın temel prensiplerini ve Crystal dilinde nasıl uygulandığını öğrendik. Aynı zamanda, Crystal dilinin Ruby diline olan benzerliklerini de gördük, bu da Ruby bilgisine sahip olanların Crystal dilini öğrenirken avantaj sağlayacağını göstermektedir.

PreviousBölüm 3: Nesne Yönelimli Programlama (OOP)NextBölüm 5: Gelişmiş Konular

Last updated 1 year ago