Re: Anonymous functions is equal to lambda not closure

From: Date: Wed, 24 Feb 2010 11:28:50 +0000
Subject: Re: Anonymous functions is equal to lambda not closure
References: 1 2  Groups: php.doc 
Request: Send a blank email to phpdoc+get-969381352@lists.php.net to get a copy of this message
2010-02-23 13:44, Hannes Magnusson skrev:
On Tue, Feb 23, 2010 at 13:07, Keryx Web<webmaster@keryx.se> wrote:
Re this page: http://php.net/manual/en/functions.anonymous.php
Closures (as described on that page) in PHP are actually closures. We already have lambda functions..
Unless scope is inherited a function (anonymous or not) is not a closure. "Lambda" does not return anything (of value) when I search the manual. Are you refering to create_function()? That is just another, older and more awkward, way of doing lambda. Back to the page we are discussing: This code example... <?php echo preg_replace_callback('~-([a-z])~', function ($match) {
    return strtoupper($match[1]);
}, 'hello-world'); // outputs helloWorld ?> ...has no closure in sight at all. Just an anonymous function. Lambda. It is not until example 3 that we have a closure. Anyway, using closure as a *synonym* to anonymous function is not correct from a computer science perspective and it is confusing for anyone using both PHP and JavaScript - and who isn't these days?
I think the better way to simply rename the chapter from 'anonymous functions' to 'closures' - but then we risk people that dont know what a closure is will never click it. A *lot* of people that use PHP have no idea what 'closure' is, but a 'anonymous function' sounds interesting to them, hence getting them to click it and discover closures.
It is especially the newbies I am worried about - it is after all my day job to train them. I do not mind them discovering closures, it is just that they should not be confused about what a closure really is. -- Keryx Web (Lars Gunther) http://keryx.se/ http://twitter.com/itpastorn/ http://itpastorn.blogspot.com/

« previous php.doc (#969381352) next »