SPUG: Time::Like::Loops idea (was: Those magic commands that Damian used)
Adam Monsen
adamm at wazamatta.com
Sat Jul 20 19:55:04 CDT 2002
On 20/07/02 08:17 -0700, Damian Conway wrote:
> Andy wrote:
>
> > I noticed at last Tuesday's meeting that Damian
> > used the command "pmd" at his Mac OS X shell prompt.
>
> % alias pmd
>
> cd `filemoddir !:1-$`
[...]
Now if only someone could trick him into printing the output of
% perldoc -m Time::Space::Continuum
and
% perldoc -m Time::Like::Loops
;)
...but seriously, I think I have one far-fetched idear on how that stuff
worked.
E=mc^2 says we can trade matter for energy with the speed of light
remaining constant, correct? So, if we consider matter to be something
like hard disk space and energy to be something like CPU cycles, the two
are roughly interchangeable whilst processing speed (c) remains
constant. This would lead me to believe that some kind of caching is
being done, and hard disk space is being interchanged with CPU cycles.
It would appear to the casual observer that we are actually reducing the
number of CPU cycles by increasing processing speed, but processing
speed _must_ be constant.
This code seems to produce the same effect as Time::Like::Loops (time it!)...
#!/usr/bin/perl -w
use strict;
use DB_File;
use Memoize;
tie my %cache => 'DB_File', 'money.db', O_RDWR|O_CREAT, 0666;
memoize('fib', SCALAR_CACHE => [HASH => \%cache]);
sub fib {
my $n = shift;
return $n if $n < 2;
fib($n-1) + fib($n-2);
}
print fib($_), "\n" for 1 .. 70;
So, maybe Time::Like::Loops somehow turns on memoize() for the functions
that are called within a "whilst" or a "fort" loop, for instance.
I think Asim may be right about sleep() being overloaded to a no-op; I
have no idea what this would entail.
--
Adam Monsen
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
POST TO: spug-list at pm.org PROBLEMS: owner-spug-list at pm.org
Subscriptions; Email to majordomo at pm.org: ACTION LIST EMAIL
Replace ACTION by subscribe or unsubscribe, EMAIL by your Email-address
For daily traffic, use spug-list for LIST ; for weekly, spug-list-digest
Seattle Perl Users Group (SPUG) Home Page: http://seattleperl.org
More information about the spug-list
mailing list