şükela:  tümü | bugün
  • dallı budaklı yapılar bu tür fonksiyonların elinden çıkarlar (bkz: soy agaci)
  • bir nesneyi tanımlarken kendisini kullanmaya denir recursion. öss ye çalışırken karşımıza çıkardı bunun matematiksel örnekleri.
  • derginin kapagindaki resimde sahsin elinde tuttugu , bahsi gecen derginin, bahsi gecen sayisi ise, olusan durumu tanimlayabilecek kelime.
  • derse gidilir, hoca ilk kez recursion anlatir, gariptir ama cok da zor degildir sonucta eger hoca duzgun anlatabildiyse. hoca kesinlikle klasik faktoryel ornegini vermistir, evet sonucta herkes bilir x!=x*(x-1)! oldugunu. neyse canim garip bisi ama anladim herhalde der ogrenci. sonra bir iki ornek daha gosterir hoca, ogrencimizin akli karisir ama iste neyse ya kisa bir seydir, ne kadar zor olabilir ki.

    sonra odev gelir, recursive bir program yazmak gerekir. bir editor acilir, kod yazilmaya hazirlanilir. sonra soru hakkinda dusunulur. bakilir. evet. "evet cok zor olmamali, recursive iste, taniminda kendi adi gecen fonksyon" denilir.
    ekrana 30 dakika bakilir. hic bir tusa basilamaz, basilinirsa da hemen silinir. dusunulur. dusunulur. donulur kalinir.

    sonuc: basta recursion'i anlamak kolay, yazmak zordur. daha sonra anlamak zor yazmak kolay olabilir, o ayri.
  • anladin mi simdi? (bkz: evet/#1886237)
    anlamadin mi hala? (bkz: hayir/#5980631)
  • bence programsal açıdan hiçbir artısı yoktur, tamamen kıllık olsun die yapılır. sadece biraz şık durur ve çözülmesi zordur. basit logic kontrollerle bu işi yaptırmak daha mantıklıdır.
    madem her dilde yazılacak perl de de recursive factoriel fonsiyonunu yazalım...
    #!/usr/bin/perl
    print factoriel(5);
    sub factoriel{
    my $n = shift;
    return($n) if ($n eq 1);
    return($n * factoriel($n - 1));
    }
  • oldu olacak assemblyde de yazalim

    .type factorial,@function
    pushl %ebp
    movl %esp, %ebp
    movl 8(%ebp), %eax
    cmpl $1, %eax # base case imizi unutmayalim, stack i elimize almayalim
    je end_factorial
    decl %eax
    pushl %eax
    call factorial
    movl 8(%ebp), %ebx
    imull %ebx, %eax
    end_factorial:
    movl %ebp, %esp
    popl %ebp
    ret
  • (bkz: fibonacci)
  • (bkz: (bkz: (bkz: (bkz: (bkz:))))) *