Znajdowanie winowajcy

Przypuśćmy, że chcę obliczyć silnię. Jest to temat poruszany w wielu dyskusjach o wydajności, więc niebawem przejdę do czegoś bardziej interesującego. Kiedy wyszukałem w Google frazę „factorial subroutines” (procedury do obliczania silni), niemal każda implementacja (z wyjątkiem napisanych w asemblerze) używała algorytmu rekurencyjnego, co oznacza, że procedura oblicza część problemu, następnie wywołuje samą siebie w celu obliczenia podproblemu i robi tak dopóty, dopóki nie wyczerpie wszystkich podproblemów, po czym stopniowo wraca do pierwotnego wywołania. W Perlu można to napisać w taki sposób:

#!/usr/bin/perl # factorial-recurse.pl sub factorial { return unless int( $_[0] ) == $_[0]; return 1 if $_[0] == 1; return $_[0] ...

Get Perl. Mistrzostwo w programowaniu now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.