in reply to The Virtue of Laziness
Perl is a stack-based language: in the general case, the arguments to some function are put on the stack, and the function knows to consume them from there, and replace them with its return value. The job of map is to take a list of items and replace it with another list of items, and the way the implementation works means it can mostly reuse the space of the input list. Thus the optimization in for when iterating over a single explicit array is less relevant for map.
map {die} @array clearly isn't a very useful thing to do, do you have a more realistic example of something you'd like to do with a map that you feel could be made faster?
Wouldn't it be nice to have some kind of "explicit lazy dereferencing" in Perl?
If you want lazy evaluation in general, I think it's unlikely you'll ever get that in Perl. If you just want something specifically for mapping over a literal array, that's almost certainly doable - but it would add complexity to the perl core as well as to the language people have to learn, so the benefits would have to justify those costs.
LanX wrote: I'm sceptical [p5p] have resource left for that.
There is no pool of resources to be assigned, rather there is a loose collection of individuals working on things they find interesting enough to spend their time on. So having a use case that someone finds compelling is the starting point.
|
---|
Replies are listed 'Best First'. | |
---|---|
Re^2: The Virtue of Laziness
by jo37 (Curate) on May 05, 2024 at 14:55 UTC | |
Re^2: The Virtue of Laziness
by LanX (Saint) on May 05, 2024 at 15:07 UTC | |
Re^2: The Virtue of Laziness
by LanX (Saint) on May 05, 2024 at 14:33 UTC | |
Re^2: The Virtue of Laziness
by jo37 (Curate) on May 12, 2024 at 21:51 UTC |