Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:99468 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 63842 invoked from network); 9 Jun 2017 13:44:22 -0000 Received: from unknown (HELO lists.php.net) (127.0.0.1) by localhost with SMTP; 9 Jun 2017 13:44:22 -0000 Authentication-Results: pb1.pair.com header.from=php@golemon.com; sender-id=softfail Authentication-Results: pb1.pair.com smtp.mail=php@golemon.com; spf=softfail; sender-id=softfail Received-SPF: softfail (pb1.pair.com: domain golemon.com does not designate 209.85.128.180 as permitted sender) X-PHP-List-Original-Sender: php@golemon.com X-Host-Fingerprint: 209.85.128.180 mail-wr0-f180.google.com Received: from [209.85.128.180] ([209.85.128.180:36733] helo=mail-wr0-f180.google.com) by pb1.pair.com (ecelerity 2.1.1.9-wez r(12769M)) with ESMTP id 0C/CD-27119-436AA395 for ; Fri, 09 Jun 2017 09:44:21 -0400 Received: by mail-wr0-f180.google.com with SMTP id v111so33729303wrc.3 for ; Fri, 09 Jun 2017 06:44:20 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=golemon-com.20150623.gappssmtp.com; s=20150623; h=mime-version:sender:in-reply-to:references:from:date:message-id :subject:to:cc:content-transfer-encoding; bh=A85qCQTeFms2JjfKLxW7w24anv3/q9U9fOUCekySDGA=; b=wKfom4mNa2fn9eFEQNLMSccsvghLLL2Am77gD+mnCl4AhI0Abo1C0JBmz95LmU+TxT BaTwiZsJyKa2eqfuiRYa/e5IY+zDcM+u1uWYl0hsRtQkJo3hR1yN3jRGHByrz70ns44A uZ+W8iasjBBgrqO3ppj/RDdXXdjgKyNeDYzlwEZqK5f06YQRwwXpGKYq0PfLNUQywnBd ww2whAeb7RhcSaX4d7Mg+swScwtfYyqbEqyQkoc1zh+1e/R/iGx4yPO82DkCP+8VDt58 eJeBo8Sv9VAjMMuZ7ykN5564Z+t7Ol3cxCmMBbQUjVHa4HE0eD54NyUObwb0eaOKT/nJ H3hQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:sender:in-reply-to:references:from :date:message-id:subject:to:cc:content-transfer-encoding; bh=A85qCQTeFms2JjfKLxW7w24anv3/q9U9fOUCekySDGA=; b=ex8BC0Id8WkIO/alB01VxDjv7JM428hHw+JuD78yijFlB/I4UZoky7K+bSVQOJ38br SRwJ8/pzPYevdzodeNQlGQHczKEkFYWJ9tDQTzwXW0D5kSYl8GHM7XAFZoyx7G/WBxgn XoOPB96BRamiH9ALASCmD5ZvDcjOevvDveP5TtEaK0Hbmu9YLDmr+SMcFgDADOn90tQY DyDcvISy2KF4qdovSb1qrKx1KkbAz0iu2P6y1dUai0u8c5smJv9EZGI9RHPZMxRPI2DE NsBC1RsLx3upAgSFyttZ1M5W4HY34Gx8ec6O1w5e8RYHHI0mXgovTmcifRxMC01uQk0g Ut/g== X-Gm-Message-State: AODbwcDOnCOn6jcafiL2McfiLveNmiWtk9FDFDWauApUkK99Y9JTUwxy 6QU/j1fgVcsJU0+8kcnnYk/MPrcRNw4B X-Received: by 10.223.132.39 with SMTP id 36mr28710164wrf.179.1497015857540; Fri, 09 Jun 2017 06:44:17 -0700 (PDT) MIME-Version: 1.0 Sender: php@golemon.com Received: by 10.223.172.226 with HTTP; Fri, 9 Jun 2017 06:44:16 -0700 (PDT) X-Originating-IP: [206.252.215.26] In-Reply-To: References: <7eaef49b-bf60-9aa1-e812-8430164e3178@garfieldtech.com> <3F920987-38CB-42DD-888D-824430C36F14@gmail.com> <2f9e73c9-444a-11d0-459a-e261ea8a7080@telia.com> <4077c099-2247-c3c1-7dee-02a6b25f8586@fleshgrinder.com> <559b73f7-c40f-e593-f0e1-51b56210d7cb@telia.com> <2053A608-6B66-42FB-A6D7-7CC64E94DA6A@koalephant.com> <4FBDE643-1EBC-485A-A39F-7E28C5D4807A@koalephant.com> <034f3ebf-95b8-a7cf-1279-77c7cf0424d7@gmail.com> <46143e7c-ef75-7c05-eaa9-98c8f3b405f1@telia.com> Date: Fri, 9 Jun 2017 09:44:16 -0400 X-Google-Sender-Auth: mQBzhpoxIdvybQ2EWaThQITpdDU Message-ID: To: =?UTF-8?Q?Bj=C3=B6rn_Larsson?= Cc: Rowan Collins , PHP internals Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Subject: Re: [PHP-DEV] [RFC]Discuss] Syntax for Arrow Functions From: pollita@php.net (Sara Golemon) On Fri, Jun 9, 2017 at 7:23 AM, Bj=C3=B6rn Larsson wrote: > If I take the liberty in using the example above on our option list: > 1. $someDict->map(fn($v) =3D> $v * 2)->filter(fn($v) =3D> $v % 3); > 2. $someDict->map(function($v) =3D> $v * 2)->filter(function($v) =3D> $v = % 3); > 3. $someDict->map($v =3D=3D> $v * 2)->filter($v =3D=3D> $v % 3); > 4. $someDict->map(($v) =3D> $v * 2)->filter(($v) =3D> $v % 3); // > Ambiguous > 5. $someDict->map([]($v) =3D> $v * 2)->filter([]($v) =3D> $v % 3); > > Old proposals: > 6. $someDict->map($v ~> $v * 2)->filter($v ~> $v % 3); > 7. $someDict->map(lambda($v) =3D> $v * 2)->filter(lambda($v) =3D> $v % 3)= ; > Something else which really pops in these examples is the effect of not needing to use parentheses when embedding a single-arg short lambda. 3 and 6 in your list read cleaner to me (due to the lack of parenthesis clutter). Sadly ~> has the same hacky implementation issues as =3D=3D>, but I think that shows a little bit of why the HackLang team decided the messy lexer was worth the clearer syntax. -Sara