in reply to Re^7: "a bit of sugar "(HOP)
in thread "a bit of sugar "(HOP)

I didn't say that; I said that prototyping allows Iterator to behave like map { ... } and grep { ... }.

Then you're assuming Iterator(sub {...}) is the starting point, and that's nonsense.

sub { ... } is the starting point, and it's already syntactically similar to map { ... } and grep { ... }. To say that (&) is needed to create the iterator while using the BLOCK syntax of map and grep is untrue. (&) is therefore irrelevant to the question at hand.

Using Iterator is the sugar. It conveys information to the user without any effect on the program. (&) is only the means to make it happen.