Hi,
1) please don't abuse another thread for something completely unrelated,
that makes tracking things really hard.
2) Most of you want should be doable with 5.3's anonymous
functions/closures.
3) More than that isn't really planned at the moment.
johannes
On Tue, 2009-08-18 at 12:46 +0300, Ville Jungman wrote:
> 1) it would be fun if code recycling was easier. nowadays extracting a
> function from code is sometimes complicated if you need to reuse it
> elsewhere.
>
> For example you have this ...
>
> while($numbers as $value){
> while(...){
> while(...){
> ...
> do_something_with($value);
> ...
> }
> }
> }
>
> ... but you would like to use the inner loop also elsewhere. Just
> define it as a function ...
>
> while($numbers as $value){
> while(...){
> while(...){
> do_something_with($value);
> do_something_with($value + 1);
> } as function inner_loop($value);
> }
> }
>
> ... and go ...
>
> inner_loop(3);
>
>
>
> Or you have a function below and would like to use only the if-part
> elsewhere. Again define that as a function:
>
> function something($value){
> something();
> foreach(...){
> if(...){
> do_something_with($value);
> do_something_with($value + 1);
> } as function snippet($value);
> }
> something();
> }
>
> ... and call it ...
> snippet(3);
>
>
> ---
>
>
> 2) i think it might be useful if all php internal commands returned
> some value(s)
>
> something like this could do ...
>
> while(
> if($x){
> return array(1,2);
> }else{
> return array(3,4,5);
> } as $value
> ){
> do_something_with($value);
> }
>
> ... or even ...
>
> $selection_array =
> while(
> if($x){
> return array(1,2);
> }else{
> return array(3,4,5);
> } as $value
> ){
> do_something_with($value);
> return if($value == 2 || $value == 4){
> return $value;
> }
> }
> ;
>
> this would make code more straightforward and easier to understand
> (when you get used to it). and enables "a maximum degree of
> recursivability that can lead to impressive solutions some areas".
> also think about pipes in shell.
>
> (the return idea is stolen from postgres pl/pgsql. loop commands
> (while, foreach etc) return always arrays.)
>
> see also:
> http://www.rebol.net/r3blogs/0024.html
> http://www.mail-archive.com/[email protected]/msg47298.html
> http://www.postgresql.org/docs/8.0/interactive/plpgsql-control-structures.html
>
> ---
> Ville
>
--
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php