Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:104811 Return-Path: Delivered-To: mailing list internals@lists.php.net Received: (qmail 52954 invoked from network); 20 Mar 2019 01:54:54 -0000 Received: from unknown (HELO mail-pg1-f175.google.com) (209.85.215.175) by pb1.pair.com with SMTP; 20 Mar 2019 01:54:54 -0000 Received: by mail-pg1-f175.google.com with SMTP id u9so224262pgo.7 for ; Tue, 19 Mar 2019 15:46:39 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=subject:to:references:from:openpgp:autocrypt:message-id:date :user-agent:mime-version:in-reply-to:content-language :content-transfer-encoding; bh=4LHVlXqEMmJF9LLeMD0Jzzi/YsElW0RdeJfO7bHpDls=; b=DbyAJhGCctrS5Vtv7gl2x24xpx0f9obqXhZWwJ65Bfto5sOr7/ICFI/1F3hgQdAZE3 oiQl+lcX7jSPWAmu+NsOi1lUD78Xo/TQPM4Po7krlf4XUvj0tLuVZkXdvwvtBmjiADQL bwy8lnMeOhcLXLxiE0PMXsi6my0ikpckJDQ62eWTVl2KQ7sOOGlvRGGAyBLnqLX3FN0a y414t96+s7Wg/kirSn7FSbjP4oVMjgzlt/WzOv9xjkB9UrMdSUFltLX46037rHct9g2j OKhNYlnNZFqZAjv8uwNxmdGnk4gY52dPL4bg0exVlFfWkXYHPo797F1hyo6oBin8OBVE CTaw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:to:references:from:openpgp:autocrypt :message-id:date:user-agent:mime-version:in-reply-to :content-language:content-transfer-encoding; bh=4LHVlXqEMmJF9LLeMD0Jzzi/YsElW0RdeJfO7bHpDls=; b=nOR2ofoVCQ0VneALsk4bmG42fhJ8QYjtsMis04y1adWSjQmziske9ENo90APHUStxU j0T5/Hh6gGb2eIKEFvM6NHs2ojyPSWJ3kwvXtRhnfR6FDxOXTwNQiLngLa9ZsT6u9dJ/ /Y1zxYiYY6YqzMm2tcgDDAFo8KKMx9w4QHepRdw1COrwVmhJKIdF1vOBtIrYeVfASIHZ VJv2cu26LzIxj+7Un8VecMWYUNci3HBSvmdMtZ2KS1e9k5LKha4m/HcBUh2bvpQPlv0X CbU7Pl6zIs7epTh6l5dazRHqZu/9q9JoHzsxLL8EGeqCJdpEtFM0IXZfuEpcg4NaKqmZ 9orw== X-Gm-Message-State: APjAAAUemIIQVpHF6ug8oL20l0xGidWui5oMMKEiGKDINH1gHUugq6LJ 53ToYmhzUk+s2SkcbkbIfdmltCk= X-Google-Smtp-Source: APXvYqw4Q0moKPFrK81LuBETPe8ot4Fz1qtQVphXPy1sXEocvJHuIpBlIYIJHOM6oFMfk2dX/JFmIA== X-Received: by 2002:a63:ed0b:: with SMTP id d11mr4483817pgi.435.1553035596885; Tue, 19 Mar 2019 15:46:36 -0700 (PDT) Received: from Stas-Pro-2016.local ([2601:646:8d01:8ee0:254e:1bc8:e60d:895b]) by smtp.gmail.com with ESMTPSA id j26sm100345pfi.164.2019.03.19.15.46.35 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 19 Mar 2019 15:46:36 -0700 (PDT) To: Andrea Faulds , internals@lists.php.net References: <85417a73-a391-c9ad-49aa-5b88c65b0900@gmail.com> <5c8ea43d.1c69fb81.e50f1.7d18SMTPIN_ADDED_MISSING@mx.google.com> Openpgp: preference=signencrypt Autocrypt: addr=smalyshev@gmail.com; prefer-encrypt=mutual; keydata= mQMuBE9mqaARCACFSqcGmNunkjQQu3X+yXnTmFeEkvM4JXZTOBdR8aEevNGmmFEfyvjaDjWi 9hcwp4E/lYtC+P7VsVjM1OSX9eq0jC/lGL0ZyRXek+mNy0n5H1NSuTpf9Y18LMqhc4G+RU+L cNiZ9K0DJuOOvNLPxW7OHZguxb3wdKPXNVa2jyRfJAKm2uaJJMT1mTmFT9a0Q8SKr+mUrrJk uG0H2o6SzrKt8Wwoint1eh67zVsJaJtQFchnEZnlawIcqP2yC4nLGR3MkubowxoEBYCZet18 aHVVRbvpG2Qtob8Lu5xrsGbmXymTkHTdpvkfcJFADa8MzOL90zOxXwbGfbIZOlh5En8jAQCX lfnx2eQL3BSW/6XANa51dbWiEp1d1BAkpGKtZvlk0Qf+M9WAi+9aXMe3xP5krxtgnRNUf2WN 6Zdy2MxL1RRJCFbytLhl0ronC49BsGYVGshdEH8xhBbiIOJKuVZ/DTl9bEm7P9c7CC7iJyVC khUAhouH6xzZQNLR+RU+QebYzXypVfl99Qk7EdMmr/WAZCHLuvanyqepC5EBsa3VnAfQemSN oBeGBKWWLiOsPjvS72+y1z4RUMAfXHn4l/sFMt8zt7/74AmJPwZquV41p4mPO12V4+xPyc6R sB84sfsk2QVivU8w8AkvGQeYjXoz7Iwao95+fWteVzZ36KRQvUckP8pGjHlDXnHxJ0HI1I/k OBZSjwRwUf0dd73y6erPhbLk+gf+NdI3H9KGJBzG5/rVyWKwUeQ9d5ud4jTJRkQGvAP5pg76 vEa9dogbpe4W5Z+0BfbiJSnQmQWSHiZddj/t33ptbup44Ck6ZTgdlmFYMLF1hR47PIZTDKER EuKYGci/vq8snZvEJP9YCw/TtiHcMdrMKcY/+Lp8lQO0GHLPB9glVhnC0db6l1Xpg1CMI8/R ozBMcij30EgATggC/y2zbiqAFoS9FN9nXPbe4phStqABEyeZ+nXudt7PUYTjVgcrqo8bHZCi sBobWC7OnKyUzxVxzUeuPkIfmZuzkLaMw2McQdvwwsNvQ0DzaLP30c1Xsm/7EIYJcOWpzlVJ 5QrdmE0/BbQyU3RhbmlzbGF2IE1hbHlzaGV2IChQSFAga2V5KSA8c21hbHlzaGV2QGdtYWls LmNvbT6IegQTEQgAIgUCT2aqtAIbAwYLCQgHAwIGFQgCCQoLBBYCAwECHgECF4AACgkQL3lW vF2gS12XMwD9HuRIolSwIK77u8EY461y2u6sbX36n5/uo/LDQuxoi3sA/0MvpnvzOhv9Iufv vsZEj3E7i3h+iD5648YMwfTFCij+uQINBE9mqaAQCADfZPMpjZkkGZj3BY/7ApoLq4mwqzbh +CpLXwNn20tFNvSXfb8RdeXvVEb7Scx+W9qYpiaun2iXJgCVH8fgpZpR856ulT1q6uCG++CX ubEvip/eJkZl93/84h04KQJwsgOrAh0Om3OePRn8Pr+++0LNS0EL8uX/YHeTOGOnnmTqYTey SBVFdov6L4mepddfjekicKQqhL7mZh/xuq29JijT0uNNX8v4vDWQDu5dlAcdd+uB3gcXMD/P ginD11zp+6wtrWCm/+yBqpvDwXQX5PGUnwvbRfl7Ay3MmwmoXiecZMg0dwTSc7e0lhB4HGRH ZdBMJB4rHUVGdzqujK/ctOvrAAMFB/0Utb76Qe6sCMlHxVAmeE/fbo7Pi05btZ/x01r67dHf aMSP0riCKJ7M0OW+jAXtu9+z/BVnYisW67WWfxl2cS5tZDgiHgJARXWUOO72+sScHP8KQmTl 1z16gyKbwY3SmyBkwcpOL35nhUWNLy93syPoY6sZUTikr2bZYukHDQ33XBPs4e6MbWKfsa9q aVmnlOF3k5UqChjutfHaEa4Q7VP4wBIpphHBi9MI16oJIzzBPbGl2uoedjwiZ6QeQZnSuOVY ZxU2d3lRA8PrtfFN1VSlpEm/VcAvtieHUYWHN0wOu+cp3Slr5XJVNjTjJhl28SlinMME54mK AGf2Ldr/dRwXiGEEGBEIAAkFAk9mqaACGwwACgkQL3lWvF2gS126EQD/VVd3FgjLKglClRQP zdfU847tqDK4zJjbmRv5vLLwoE0A+wbrQs7jVGU3NrS0AIl5vUmewpp2BKzSkepy23nWmejw Message-ID: Date: Tue, 19 Mar 2019 15:46:35 -0700 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.13; rv:60.0) Gecko/20100101 Thunderbird/60.5.3 MIME-Version: 1.0 In-Reply-To: <5c8ea43d.1c69fb81.e50f1.7d18SMTPIN_ADDED_MISSING@mx.google.com> Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 7bit Subject: Re: [PHP-DEV] RFC Draft: Comprehensions From: smalyshev@gmail.com (Stanislav Malyshev) Hi! > In Python, the difference is that []-syntax gives you a list > (pre-comupted), whereas without the [] you get a generator > (generate-on-demand). This distinction is important because the > generator might be iterating over something non-repeatable (e.g. another > generator), or have some destructive or mutating effect. You also might > not want to take the performance penalty of computing it every time you > iterate over it. Understandable, but I wonder how important it is for the short syntax implied by list comprehensions? I mean, there could be all kinds of complex cases, but those are easily doable by using already existing functional syntax. If you need a generator over non-repeatable sequence, you can get it now with a functional syntax. But in my experience, about 99% times I use this syntax (in Python) is a simple sequence filter and I want to get a list out of it. I suspect PHP usage would be the same. So I wonder if it's worth to bother inventing special syntax for something that will be used in 1% of cases, and even in those cases might be more readable as a generator function? > Why not apply the same approach to PHP? There is iterator_to_array() to > convert a generator to an array, so we may not need both syntaxes. > However, I think using [] for something that is *not an array* is > counter-intuitive. No, I would definitely be for []-syntax producing an array. As I said, that's in my experience what people usually want. -- Stas Malyshev smalyshev@gmail.com