Liczenie Silni w Rubim

def fact(number)
if(number == 1)
1
else
number * fact(number - 1)
end
end

puts fact(6)
Taki przykład znajduje sie w ksiazce, z ktorej ucze sie Rubiego. Ma on liczyc silnie, tylko za cholere nie moge zrozumiec w jaki sposob to robi. Wychodzi na to, ze warunek if sie powtarza(jakim cudem?). Mi to wyglada na cos takiego: skrypt tworzy metode z argumentem “number” jesli “number” =1 to zwracamy 1 a jesli nie to wykonujemy dzialanie na liczenie silni…tylko wg. tego dzialania wynik powinien wyjsc 30 a nie 720, poniewaz 6*5=30… number(6)*fact(6 -1). Prosze o jasny opis dzialania programu…

Poczytaj o rekurencjach

Metoda wywołująca samą siebie…ok dzięki za wskazówkę, do reszty już sam dojdę ;]