PHP
Higher-order functions
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
-
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.
-
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
-
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";
Sıradaki ders: Closure binding (bindTo)