CodeBlanks Logo Icon CodeBlanks

Higher-order functions

PHP kursu · Uzman · Ders 12/54

Fonksiyon döndüren veya kabul eden higher-order fonksiyonlar yazmayı öğrenirsin.

Higher-order fonksiyon nedir?

Bir fonksiyon hem başka bir fonksiyonu parametre alabilir hem de fonksiyon döndürebilir. Bu tür fonksiyonlara higher-order denir.

Örneğin makeMultiplier(2), fn($n) => $n * 2 döndürür. Dönen closure'u değişkene atayıp sonra çağırabilirsin. Bu, sabit kod yerine esnek araç üretmektir.

Bu örüntü, array_map ve array_filter gibi yerleşik fonksiyonlarda zaten kullanılıyor; şimdi kendin yazacaksın.

Fonksiyon bileştirme

Higher-order fonksiyonların gücü, bileştirilebilmelerinden gelir. Bir fonksiyonun çıktısı, diğerinin girişi olabilir.

Örneğin compose($f, $g) fonksiyonu fn($x) => $f($g($x)) döndürür. Böylece iki işlemi tek adımda uygularsın.

Bu örüntü fonksiyonel programlamanın temelidir; veriyi boru gibi bir işlemden diğerine akıtırsın. Karmaşık akışları küçük parçalardan kurarsın.

Uygulama makeMultiplier fonksiyonu

makeMultiplier(float $factor) fonksiyonunu tanımla: parametre olarak verilen faktör ile çarpan bir arrow function döndürsün (fn($n) => $n * $factor). Sonra $triple = makeMultiplier(3); ile çağır ve echo $triple(5) . "\n"; ile sonucu yazdır.

Örnek çözümü göster
function makeMultiplier(float $factor) { return fn($n) => $n * $factor; } yaz. Sonra $triple = makeMultiplier(3); ve echo $triple(5) . "\n"; çağır.
Örnek çözüm:
<?php
// makeMultiplier fonksiyonunu yaz ve $triple ile çağır
function makeMultiplier(float $factor) {
    return fn($n) => $n * $factor;
}
$triple = makeMultiplier(3);
echo $triple(5) . "\n";

Kendini test et

  1. Higher-order fonksiyon nedir?

    • İki sayıyı toplayan fonksiyon
    • Bir fonksiyonu parametre alan veya döndüren fonksiyon
    • Yalnızca ekrana yazı yazan fonksiyon
    • Sınıf içindeki bir yöntem
    Cevabı göster

    Bir fonksiyonu parametre alan veya döndüren fonksiyon — Doğru. Higher-order fonksiyon, fonksiyonu parametre alır ya da fonksiyon döndürür.

  2. Higher-order örüntüleri eşleştir

    makeMultiplier(2)
    Closure döndürür
    array_map(...)
    Closure kabul eder
    callable parametre
    Fonksiyon kabul eder
  3. Fonksiyon döndüren fonksiyon

    <?php
    function makeMultiplier($factor) {
        return ____ ($n) => $n * $factor;
    }
    $double = makeMultiplier(2);
    echo $double(5) . "\n";
    
    Cevabı göster
    <?php
    function makeMultiplier($factor) {
        return fn ($n) => $n * $factor;
    }
    $double = makeMultiplier(2);
    echo $double(5) . "\n";
    

Uzman bölümündeki tüm dersler