Beefy Boxes and Bandwidth Generously Provided by pair Networks
Problems? Is your data what you think it is?
 
PerlMonks  

Re^2: Infinitely Lazy

by bunnyman (Hermit)
on Feb 08, 2005 at 16:40 UTC ( #429122=note: print w/replies, xml ) Need Help??


in reply to Re: Infinitely Lazy
in thread Infinitely Lazy

Lazy evaluation isn't esoteric and unfamiliar. If you have ever written $foo = $ENV{"FOO"} || "foo"; then you have used it.

Ever seen this code before?

if(grep /needle/, @haystack) { print "found it! }

If @haystack is large and begins with "needle", then this code is searching the entire array even though it has enough information to stop after the first element. If grep were using lazy evaluation, then this code could go faster.

Update:

@matches = ( grep /$pattern/, @ReallyBigList )[ 0 .. $n ];

This code gets the first $n matches in the list, but Perl is not smart enough to know it is allowed to stop searching after it has enough matches. It will search down the entire list no matter what. Lazy evaluation would be nice here too.

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://429122]
help
Chatterbox?
and all is quiet...

How do I use this? | Other CB clients
Other Users?
Others meditating upon the Monastery: (5)
As of 2017-06-22 17:32 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?
    How many monitors do you use while coding?















    Results (525 votes). Check out past polls.