Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:34121 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 92176 invoked by uid 1010); 20 Dec 2007 09:20:08 -0000 Delivered-To: ezmlm-scan-internals@lists.php.net Delivered-To: ezmlm-internals@lists.php.net Received: (qmail 92161 invoked from network); 20 Dec 2007 09:20:08 -0000 Received: from unknown (HELO lists.php.net) (127.0.0.1) by localhost with SMTP; 20 Dec 2007 09:20:08 -0000 Authentication-Results: pb1.pair.com header.from=tony@daylessday.org; sender-id=pass Authentication-Results: pb1.pair.com smtp.mail=tony@daylessday.org; spf=pass; sender-id=pass Received-SPF: pass (pb1.pair.com: domain daylessday.org designates 89.208.40.236 as permitted sender) X-PHP-List-Original-Sender: tony@daylessday.org X-Host-Fingerprint: 89.208.40.236 mail.daylessday.org Linux 2.6 Received: from [89.208.40.236] ([89.208.40.236:40414] helo=daylessday.org) by pb1.pair.com (ecelerity 2.1.1.9-wez r(12769M)) with ESMTP id A2/4A-15872-5C33A674 for ; Thu, 20 Dec 2007 04:20:06 -0500 Received: from [192.168.3.87] (unknown [212.42.62.198]) by daylessday.org (Postfix) with ESMTP id CDEBC640113; Thu, 20 Dec 2007 12:20:02 +0300 (MSK) Message-ID: <476A33BD.1050508@daylessday.org> Date: Thu, 20 Dec 2007 12:19:57 +0300 User-Agent: Thunderbird 2.0.0.9 (X11/20071114) MIME-Version: 1.0 To: Alexey Zakhlestin CC: internals@lists.php.net References: <98b8086f0712150818n40056cedyf0aae7a5a08a27b7@mail.gmail.com> <200712172130.08216.larry@garfieldtech.com> <4FADC266-873E-4FD2-BEC8-28EA9D833297@procata.com> <200712172341.54372.larry@garfieldtech.com> <98b8086f0712191345h7fe11a7kc5d34b0369754c8f@mail.gmail.com> <47699960.1090101@zend.com> <98b8086f0712191528n2fd348d0oe3da9eed20d87194@mail.gmail.com> <4769ACF5.7000701@zend.com> <476A208D.9020201@daylessday.org> In-Reply-To: Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit Subject: Re: [PHP-DEV] Re: PATCH: anonymous functions in PHP From: tony@daylessday.org (Antony Dovgal) On 20.12.2007 11:18, Alexey Zakhlestin wrote: > On 12/20/07, Antony Dovgal wrote: >> On 20.12.2007 09:57, Alexey Zakhlestin wrote: >> > being able to do the following (and not to worry about runtime >> > compilation) is a good reason on it's own: >> > >> > array_filter($my_data, function($test){ return 3 === ($test % 4) }); >> >> Oh, my.. >> This code clearly demonstrates why a syntax like this should not be allowed. Ever. > > you prefer cluttering namespace with a lot of oneliners? Oh, come on.. Since when do we call it "cluttering"? Is there some kind of limit on number of functions in a namespace? Why limit yourself and "inline" the function instead of putting it into a nice library of utility functions? > currently, people prefer to use explicit cycles instead of > array_map/array_filter and that looks ugly (hides actual logic behind > syntax), but at least it is not as slow as create_function. Whatever people currently use - it's their choice. If you think that people would magically switch to the new syntax (if we decide to add it after all) in a moment, I'm afraid I have to upset you - this will not happen in the next 10 years because of many reasons, so people would still use the good old syntax they're used to. So here is what we _actually_ get with this anonymous function syntax: 1) Yet another way to make the code unreadable and overcomplicated. 2) Yet another incompatible syntax you cannot use if you need to support older PHP versions (and you can't check for it in runtime, since this is a compile time thingie). 3) 10 people happy because they got a new toy. -- Wbr, Antony Dovgal