Beefy Boxes and Bandwidth Generously Provided by pair Networks
Think about Loose Coupling
 
PerlMonks  

Re: Behold! The power of recursion.

by pg (Canon)
on Oct 18, 2004 at 03:04 UTC ( #400040=note: print w/replies, xml ) Need Help??


in reply to Behold! The power of recursion.

Just for fun, imagine those two functions are actually two guys talking: (Still recursion, but two functions involved, they call each other)

use strict; use warnings; use constant HIGH => 1024; my $the_number = int(rand HIGH) + 1; print "The number is $the_number\n"; my $high; my $low; my $answer; my $guess; ask_question(); sub ask_question { sleep(1); if (!$answer) { $high = HIGH; $low = 1; } elsif ($answer == 0) { return; } elsif ($answer == 1) { $low = $guess + 1; } elsif ($answer == -1) { $high = $guess - 1; } $guess = int(($low + $high) / 2); print "Is your number $guess? "; answer(); } sub answer { if ($guess < $the_number) { print "Go higher ...\n"; $answer = 1; ask_question(); } elsif ($guess == $the_number) { print "You got it!\n"; $answer = 0; } else { print "Go lower ...\n"; $answer = -1; ask_question(); } }

Result from one run:

The number is 1001 Is your number 512? Go higher ... Is your number 768? Go higher ... Is your number 896? Go higher ... Is your number 960? Go higher ... Is your number 992? Go higher ... Is your number 1008? Go lower ... Is your number 1000? Go higher ... Is your number 1004? Go lower ... Is your number 1002? Go lower ... Is your number 1001? You got it!

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://400040]
help
Chatterbox?
[ambrus]: Corion: I have no problem with exit codes and shell pipeline. My problem is that the current process requires a lot of manual intervention from me, including editing the source codes.
[ambrus]: (Also a lot of manual intervention by two or three other co-workers, who do other parts of the process.)
[ambrus]: Some of the manual part is unavoidable, but not all.
[choroba]: LanX was there a way to recover the numbers from the remaining information?
[Corion]: LanX: Ow ;)
Discipulus manual work: i just tell the same to my boss: every time the quick solution is to assign some manual data entry task to my group.. because we have not direct access to many databases here..
[LanX]: point is: in high speed trade each bank has to remember what he has to get from the others... so dresdner got billed for losses but couldn't claim gains
Discipulus is this the IT?
[Corion]: Discipulus: Well, in many cases it doesn't make sense to build an interface and complicated program just to enter 20 rows into a database ;) But yes, automating data imports should pay off in the long run

How do I use this? | Other CB clients
Other Users?
Others exploiting the Monastery: (10)
As of 2017-03-29 12:00 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?
    Should Pluto Get Its Planethood Back?



    Results (350 votes). Check out past polls.