http://www.perlmonks.org?node_id=176773


in reply to factorialmath.

Let the effort be in explaining this code, if the AM ever uses it.

#!/usr/bin/perl # There is everything you need: # a sentinel, $f{0} = sub { 1 }; # a recursive function, sub f { $f{$n = pop()-1} ||= sub { f($n) }; ($n+1) * $f{$n}->(); } # a call to the recursive function... print f(shift);

I hope it doesn't need to pass -w and use strict... ;-) And what did he mean, test if the parameter is a number?!

Replies are listed 'Best First'.
Re: Re: factorialmath.
by Hero Zzyzzx (Curate) on Jun 24, 2002 at 14:37 UTC

    Student: Umm, well see it has something called a sub, and when you "pop" it it pulls the number and . . .

    Professor: F-

    -Any sufficiently advanced technology is
    indistinguishable from doubletalk.