in reply to Re^6: Next Language to Learn
in thread Next Language to Learn
> For instance it would be interesting to see, how easy/clumsy it is to retrofit lazy evaluation into Perl. E.g.you can tie an iterator to a variable. ... gimme an example and I'll see what's possible.Good point.
For example, we have a function which generates the list of all even numbers, i.e.
and a function which returns the first n elements from a list:sub list_all_even { _list_all_even_from(0) } sub _list_all_even_from { my $from=shift; ($from, _list_all_even_from($from+2)) }
Calling head(5,list_all_even) should return the first even numbers, but in the implementation I gave, list_all_even would, of course, loop forever. Under lazy evaluation, list_all_even would only produces those values which are actually needed, so maybe your general idea of using an operator would lead in the right direction...sub head { my ($n,@list)=@_; $n ? ($list[0],head($n-1,butfirst(@list))) : () } sub butfirst { shift; @_ }
--
Ronald Fischer <ynnor@mm.st>
Ronald Fischer <ynnor@mm.st>
|
---|
Replies are listed 'Best First'. | |
---|---|
Re^8: Next Language to Learn (Lazy Perl)
by LanX (Saint) on Apr 01, 2010 at 09:57 UTC | |
by rovf (Priest) on Apr 01, 2010 at 11:07 UTC | |
by LanX (Saint) on Apr 01, 2010 at 17:58 UTC | |
by rovf (Priest) on Apr 06, 2010 at 07:09 UTC |
In Section
Seekers of Perl Wisdom