0Pricing
Scala for Backend Engineering & Functional Programming · Ders

Birinci Sınıf Değerler Olarak İşlevler

İşlevleri bağımsız değişken olarak tanımlayıp aktarmayı, başka işlevlerden döndürmeyi ve değişkenlerde saklamayı öğrenin.

Birinci Sınıf Değerler Olarak İşlevler, CoddyKit'te ücretsiz bir Scala for Backend Engineering & Functional Programming dersidir. Bu, 3 dersinin 1. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Scala for Backend Engineering & Functional Programming öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Scala for Backend Engineering & Functional Programming kursu toplamda 3 dersten oluşur.

Birinci Sınıf Değerler Olarak İşlevler

İşlevsel Programlamanın Temelleri'ne hoş geldiniz! Scala'da işlevler yalnızca komutlar değildir; onlar birinci sınıf değerlerdir.

Bu, işlevleri sayılar veya dizeler gibi diğer tüm veri türleriyle aynı şekilde ele alabileceğiniz anlamına gelir. Bu, işlevsel programlamanın temel kavramlarından biridir!

İşlevleri Değişkenlere Atama

Bir sayıyı val öğesine atayabildiğiniz gibi bir işlevi de ona atayabilirsiniz. Burada greet, işlevimizi tutan bir değişken hâline gelir.

Bu basit örneği çalıştırmayı deneyin:

object Main {
  def main(args: Array[String]): Unit = {
    val greet = (name: String) => s"Hello, $name!"
    println(greet("Alice"))
  }
}

Anonim İşlevler (Lambda'lar)

Önceki sahnedeki (name: String) => s"Hello, $name!" bölümü, lambda ifadesi olarak da bilinen bir anonim işlevdir.

Bu, genellikle ihtiyaç duyulan yerde satır içinde tanımlanan, adı olmayan bir işlevdir. Hızlı ve özel görevler için son derece kullanışlıdır.

object Main {
  def main(args: Array[String]): Unit = {
    val add = (x: Int, y: Int) => x + y
    println(s"5 + 3 = ${add(5, 3)}")

    val subtract = (a: Int, b: Int) => a - b
    println(s"10 - 4 = ${subtract(10, 4)}")
  }
}

Metot Bağımsız Değişkenleri Olarak İşlevler

En güçlü özelliklerden biri, işlevleri diğer işlevlere bağımsız değişken olarak geçirmektir. Bunlara yüksek dereceli işlevler denir.

Aşağıdaki applyOperation işlevi iki sayı ve başka bir op işlevi alır. Ardından sayıları birleştirmek için op kullanılır.

object Main {
  def applyOperation(x: Int, y: Int, op: (Int, Int) => Int): Int = {
    op(x, y)
  }

  def main(args: Array[String]): Unit = {
    val add = (a: Int, b: Int) => a + b
    val result = applyOperation(5, 3, add)
    println(s"Result of addition: $result")
  }
}

İşlev Türlerini Anlama

Önceki sahnedeki op: (Int, Int) => Int tür imzasına dikkat edin.

  • (Int, Int): İşlevin iki Int bağımsız değişkeni aldığı anlamına gelir.
  • => Int: İşlevin bir Int döndürdüğü anlamına gelir.

Her işlevin, girdilerini ve çıktısını açıklayan bir türü vardır. Bu, Scala'nın tür güvenliğini sağlamasına yardımcı olur!

Kısa İşlev Geçirme

Her zaman önce adlandırılmış bir işlev tanımlamanız gerekmez. Bir işlev bağımsız değişkeninin beklendiği yerde anonim bir işlevi doğrudan geçirebilirsiniz.

Bu, özellikle basit işlemlerde kodunuzu daha kısa ve okunabilir hâle getirir.

object Main {
  def applyOperation(x: Int, y: Int, op: (Int, Int) => Int): Int = {
    op(x, y)
  }

  def main(args: Array[String]): Unit = {
    val result1 = applyOperation(10, 2, (a: Int, b: Int) => a * b)
    println(s"Multiplication: $result1")

    // Scala can often infer types, making it even shorter!
    val result2 = applyOperation(20, 4, (a, b) => a / b)
    println(s"Division: $result2")
  }
}

Dönüş Değerleri Olarak İşlevler

İşlevler ayrıca başka işlevler döndürebilir. Bu şaşırtıcı gelebilir, ancak esnek ve yapılandırılabilir kod oluşturmak için son derece kullanışlıdır.

Burada makeMultiplier, girdisini belirli bir katsayıyla çarpan yeni bir işlev döndürür.

object Main {
  def makeMultiplier(factor: Int): Int => Int = {
    (x: Int) => x * factor
  }

  def main(args: Array[String]): Unit = {
    val multiplyByTwo = makeMultiplier(2)
    val multiplyByFive = makeMultiplier(5)

    println(s"5 * 2 = ${multiplyByTwo(5)}")
    println(s"10 * 5 = ${multiplyByFive(10)}")
  }
}

Kapanışları Anlama

makeMultiplier bir işlev döndürdüğünde, döndürülen işlev oluşturulduğu andaki factor değerini "hatırlar". Buna kapanış denir.

makeMultiplier çalışmasını tamamladıktan sonra bile multiplyByTwo işlevi katsayısının 2 olduğunu hâlâ "bilir".

Birinci Sınıf İşlevlerin Faydaları

İşlevleri birinci sınıf öğeler olarak ele almak neden bu kadar önemlidir?

  • Esneklik: Farklı işlevler geçirerek davranışları kolayca değiştirebilirsiniz.
  • Yeniden kullanılabilirlik: Sağladığınız herhangi bir işlev üzerinde çalışan genel işlevler oluşturabilirsiniz.
  • Kısalık: Özellikle anonim işlevlerle daha kısa ve anlamlı kod yazmanızı sağlar.
  • İşlevsel tarz: Güçlü kalıpların kullanılmasını sağlayan işlevsel programlamanın temel taşlarından biridir.

Bilginizi Test Edin

Birinci sınıf değerler olarak işlevleri anlayıp anlamadığınızı kontrol edelim.

object Main {
  def execute(x: Int, op: Int => Int): Int = op(x)

  def main(args: Array[String]): Unit = {
    val square = (n: Int) => n * n
    val result = execute(5, square)
    println(result)
  }
}

Değerler Olarak İşlevler: Tekrar

Harika iş çıkardınız! Scala'da birinci sınıf değerler olarak işlevler temel kavramını öğrendiniz.

  • İşlevler değişkenlere atanabilir.
  • Diğer işlevlere bağımsız değişken olarak geçirilebilir.
  • Diğer işlevlerden sonuç olarak döndürülebilir.
  • Bu, yüksek dereceli işlevler ve kapanışlar gibi güçlü kalıpların kullanılmasını sağlar.

Bu yetenek, esnek, yeniden kullanılabilir ve anlamlı işlevsel Scala kodu yazmanın anahtarıdır. Sırada daha gelişmiş yüksek dereceli işlevleri ve kısmi uygulamayı inceleyeceğiz!

Sıkça Sorulan Sorular

“Birinci Sınıf Değerler Olarak İşlevler” dersi ücretsiz mi?

Evet — “Birinci Sınıf Değerler Olarak İşlevler” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Scala for Backend Engineering & Functional Programming kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Scala for Backend Engineering & Functional Programming kursu toplamda 3 dersten oluşur.

“Birinci Sınıf Değerler Olarak İşlevler” dersinde ne öğreneceğim?

İşlevleri bağımsız değişken olarak tanımlayıp aktarmayı, başka işlevlerden döndürmeyi ve değişkenlerde saklamayı öğrenin. Scala for Backend Engineering & Functional Programming ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.

Scala for Backend Engineering & Functional Programming öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te Scala for Backend Engineering & Functional Programming, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 3 dersinin 1. dersidir.

“Birinci Sınıf Değerler Olarak İşlevler” dersi ne kadar sürer?

Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.

Bu Scala for Backend Engineering & Functional Programming dersinde kod yazıp çalıştırabilir miyim?

Evet. Her Scala for Backend Engineering & Functional Programming dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.

Bu kursun tüm dersleri

  1. Birinci Sınıf Değerler Olarak İşlevler
  2. Üst Düzey İşlevler ve Kısmi Uygulama
  3. Değişmezlik ve Yan Etkiler
← Scala for Backend Engineering & Functional Programming Sayfasına Dön