In the chapter on Wormholes, she describes a futuristic, potential scenario for creating a time machine based on a wormhole in space:
First stabilize the wormhole. Then tow one mouth of the wormhole through deep space so that it comes very close to a dense object such as a neutron star. The star's enormous gravity well would then produce massive distortions in space-time and eventually open up a time tunnel. The gravity forces involved would cause a discrepancy between the time experienced by the mouth of the wormhole next to the star and the exit mouth left elsewhere far away from the gravity well. After generating a time difference between the two ends of the wormhole (which could take you backward for any number of days, weeks, months, or years depending upon how long you left it next to the neutron star) the wormhole mouth can be towed away. Parked wherever you needed to use it--perhaps near the moon to make it easily accessible from Earth--you would now have a reusable time machine with a set period of time transfer involved.
Now of course this chapter, like most of the rest of the book, is highly theoretical, and not to be taken as a literal suggestion for immediate implementation! But, as I read this section of the book, it occurred to me what she is talking about is very much in essence a sort of physical world "closure" on a cosmic scale!
Perl's closures operate on the principle that you can use lexical variables which, though they go out of scope at the end of the enclosing block or subroutine, continue to keep the state of the lexical variables "alive" ("deeply bound") afterwards.
In the wormhole example, the lexical variable is analogous to the time difference between the two ends of the wormhole, the act of moving the mouth of the wormhole towards a neutron star is analogous to the closure which creates an anonymous subroutine, and the anonymous subroutine is the wormhole itself:
sub create_time_machine { my $time_duration = shift; my $wormhole = sub { # (Creation of wormhole is left as an exercise :-) # ... }; # Here, implement the following pseudocode: # Tow wormhole close enough to the neutron # star, and for a long enough period, to # fix its duration at $time_duration years... return $wormhole; } # Now create time machine with desired time period my $p = create_time_machine(1_000); # eg. 1,000 years
It seems to me both fascinating and humorous that principles in Perl can extend, by analogy, to theories about wormholes and time-travel.
Update: fixed spelling mistakes (much appreciated, ysth)
|
|---|