Özet - Fonksiyonel programlama
- Kotlin kursu
- İleri seviye
- Ders 54/83
- 5 dk
immutability, Sequence ve Result'ı birleştirerek bir fonksiyonel işlem hattı yazarsın.
Özet - Fonksiyonel programlama
Bu grupta fonksiyonel programlamanın temel kavramlarını gördün: data class ile immutability, saf fonksiyonlar, Sequence ile tembellik, fold ile accumulation ve Result ile monad yaklaşımı.
Bu ders, üçünü birleştiren küçük bir görev içerir: bir data class tanımlayıp fold ile toplam hesaplayacaksın. Bu kalıp, fonksiyonel Kotlin'in temelini oluşturur.
Uygulama Özet: Product ve fold
Product(val name: String, val price: Int) adında data class tanımla. main içinde üç ürün listesi oluştur, fold(0) { acc, p -> acc + p.price } ile toplam fiyatı hesapla ve println ile yazdır.
Başlangıç kodu
// Product data class: name ve price özellikleri
// main'de üç ürün listele, fold ile toplam fiyatı yazdırÖrnek çözüm
data class Product(val name: String, val price: Int)
fun main() {
val items = listOf(
Product("Ekmek", 20),
Product("Süt", 15),
Product("Çay", 25)
)
val total = items.fold(0) { acc, p -> acc + p.price }
println(total)
}Beklenen çıktı
60
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 Aşağıdakilerden hangisi fonksiyonel programlamanın temel özelliğidir?
- Değişmez (immutable) veri Doğru cevap
- Yan etki böl olması
- Global durumu sık değiştirme
- Döngülerin her yere yayılması
Açıklama: Immutability fonksiyonel programlamanın temelidir.
2 FP kavramlarını eşle
| Kavram | Anlamı |
|---|---|
data class |
Immutability |
fun double(n) |
Saf fonksiyon |
asSequence() |
Tembellik |
fold(0) |
Accumulation |
3 fold çağrısını tamamla
val total = items.____(0) { acc, item -> acc + item.price }
val total = items.fold(0) { acc, item -> acc + item.price }
Açıklama: fold başlangıç değeriyle accumulation yapar.