Benim deneyimimde, ozyinelemeli kod yazmak okumaktan daha kolay
Profosyonel hayatta bu tur kod orneklerini okuma geregi pek duyulmuyor. Duyulacaksa, daha okunakli bir sekilde tekrardan yaziliyor. Ilk bakista her seyiyle anlasilmayan bir kodu okumanin manasi yok—dogrulamak icin okumanin bir manasi yok cunku dogrulama yapan kisi kodu yanlis okuyabilir. Dogru calistigindan emin olmak icin okumanin bir manasi yok cunku bu isi testler yapiyor. Asagidaki assert
’leri okuyup anlamak yeterli olacaktir. (Kendileri ornek ve test olarak cift gorev goruyorlar.)
Kodu daha anlasilabilir yapmak icin herhalde list comprehension’i hede = []; for ...: for ...: hede.append(x)
seklinde acmak gerekiyor. Bunu odev olarak veriyorum.
Onun disinda sum_ == 0
olan base case’den geriye dogru cagrilari ve pasladiklari/dondurdukleri degerleri takip etmek lazim.
Bu aslinda 2 boyutlu bir dynamic programming fonksiyonu. Onlari gorsellestirmeyi anlatan soyle guzel bir makale de var. (“2 boyutlu” lafim da oradan geliyor olsa gerek; terim degil.)