in reply to Re^3: A "Fun"ctional Attempt
in thread A "Fun"ctional Attempt
Actually there are some implementations for Perl 6 gather and take, for example Perl6::GatherTake. It seems that many interesting features are introduced by Perl 6...
Comprehensions generate lists. A comprehension consists of generators which offer operands, guards which behave like assertions on the operands, and an expression for computing an element with "legal" operands. Some languages (such as Erlang, Haskell, .etc) have such feature builtin already.
A comprehension could be derived from some monad comprehension, which implies normal evaluation order among all generators and guards. However, it is beyond the current discussion.
In HOI::Comprehensions, I generate something like a lazy for-loop - an "iterator", which is composition of function calls, is stored as a string, and evaluated each time a "step" is made. It is a little slow since eval is applied on each computation. Perhaps gather & take is a better idea.
|
|---|