Hi, Thanks for your positive feedback about my idea and sorry for hijacking this thread.
Although my C skills are limited to its syntax only I'll create an RFC, then someone else might give it a try an create a patch. All the best, Ionut On Tue, Oct 28, 2008 at 4:23 PM, Kalle Sommer Nielsen <[EMAIL PROTECTED]>wrote: > Hi Ionut > > 2008/10/28 Ionut Gabriel Stan <[EMAIL PROTECTED]>: > > While we're at this and considering the new lambdas that we now have in > the > > language > > I must say I'd like some functions to support Traversables. Those would > be: > > > > array_map(), array_reduce(), array_filter(), array_walk() and > > array_walk_recursive() > > > > Although I'd rather want a class (because the array_* functions don't > adhere > > to some strict param order standards) > > to provide functional style methods, like those in Javascript 1.8: > > > > > https://developer.mozilla.org/index.php?title=En/New_in_JavaScript_1.6#section_2 > > > https://developer.mozilla.org/index.php?title=En/New_in_JavaScript_1.8#section_4 > > > > Array.forEach() > > Array.map() > > Array.filter() > > Array.reduce() > > Array.reduceRight() > > Array.some() > > Array.every() > > > > > > In PHP something like this would be nice: > > > > $processedDirectoryIterator = SplFunctional(new > > DirecotoryIterator(__DIR__)).map(function() { > > // do stuff here > > }); > > This would indeed be nice, but theres one thing yet, PHP doesn't > support closure objects, take for example: > > <?php > class Test > { > public function hello($who) > { > echo 'Hello ' . $who; > } > } > > $closure = function() > { > static $instance; > > if(!$instance) > { > $instance = new Test; > } > > return($instance); > }; > > $closure->hello('Kalle'); // Fatal error, undefined method Closure::hello() > > But you should indeed make an RFC for this and even create a patch if > you're able to :) > > > > > where SplFunctional is a function returning a SplFunctional object whose > > construcor accepts iteratable > > structures (arrays or Traversables) and $processDirectoryIterator is a > > DirectoryIterator resulted after applying > > the lamba to each of the SplFileObjects contained. > > > > I know right now we have FilterIterator as an equivalent to > array_filter() > > for Iterators and we could implement our > > own Functional classes but that means a new class for situations where a > > simple lambda could do the job > > just as well. > > > > I hope my proposal makes sense. > > > > > > P.S. I introduced a SplFunctional function just to skip the instantiation > of > > the object. > > > > > > > > On 10/28/2008 15:16, Lars Strojny wrote: > >> > >> Hi Andrei, > >> > >> Am Montag, den 27.10.2008, 11:34 -0700 schrieb Andrei Zmievski: > >> [...] > >> > >>> > >>> I would say "no" for 5.3. But for 6 it would be fantastic to have all > >>> array-related > >>> operations supporting ArrayAccess interface, where possible. > >>> > >> > >> +1 for this. > >> > >> cu, Lars > >> > > > > > > -- > > PHP Internals - PHP Runtime Development Mailing List > > To unsubscribe, visit: http://www.php.net/unsub.php > > > > > > > > -- > Kalle Sommer Nielsen >