Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:126338 X-Original-To: internals@lists.php.net Delivered-To: internals@lists.php.net Received: from php-smtp4.php.net (php-smtp4.php.net [45.112.84.5]) by qa.php.net (Postfix) with ESMTPS id 402A41A00BC for ; Fri, 7 Feb 2025 16:51:51 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=php.net; s=mail; t=1738946946; bh=RvdM9OzdjmXiOLwN/1Xq7zgu0gDKpxe4sUPoAGW1u0E=; h=Date:Subject:To:References:From:In-Reply-To:From; b=Udy2dyOW9Y7EX/+xFY6uGmX1Bega6a91oH5lqi2v8xTI8+eGo58v7ffZ0AegAOfkm +PenfJ9FLMt5gKSR36zd61EOfH6sSoJdrnSPr0h4br72uFQBBfQrkHhHFFC9bRHzvn ckWHEcYd4ks+KNWq1BMnO9RhFjWvOGNeTWIc4UYy6t1rOifqPeCDEhLvc6cnVCl5kz FZ6Cfpp8VHAf2F7HtPJo/c5FvyB4b53OHZ92uLqckRE6y/7wGqyrxPO7mZWa2qxwfu Cm2vEDyl9R/I9Dl8xt0M/3QN1MiBL+0xUdBuaOP4EgYnSnb6XZhRA85dxAvrKT1e/q 94Nhinf0qVIRQ== Received: from php-smtp4.php.net (localhost [127.0.0.1]) by php-smtp4.php.net (Postfix) with ESMTP id BAB31180059 for ; Fri, 7 Feb 2025 16:49:04 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 4.0.0 (2022-12-13) on php-smtp4.php.net X-Spam-Level: X-Spam-Status: No, score=0.2 required=5.0 tests=BAYES_50,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,DMARC_PASS, FREEMAIL_ENVFROM_END_DIGIT,FREEMAIL_FROM,RCVD_IN_DNSWL_LOW, RCVD_IN_MSPIKE_H3,RCVD_IN_MSPIKE_WL,SPF_HELO_NONE,SPF_PASS autolearn=no autolearn_force=no version=4.0.0 X-Spam-Virus: No X-Envelope-From: Received: from mout.gmx.net (mout.gmx.net [212.227.17.21]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange ECDHE (prime256v1) server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by php-smtp4.php.net (Postfix) with ESMTPS for ; Fri, 7 Feb 2025 16:49:03 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmx.de; s=s31663417; t=1738947107; x=1739551907; i=cmbecker69@gmx.de; bh=/frUervjlNK4Z1kv/sm3I7WvHJdwoNjdfG9O1MY7cTQ=; h=X-UI-Sender-Class:Message-ID:Date:MIME-Version:Subject:To: References:From:In-Reply-To:Content-Type: Content-Transfer-Encoding:cc:content-transfer-encoding: content-type:date:from:message-id:mime-version:reply-to:subject: to; b=S+Xly4bz3PlfunX/cUlfrIcMKZLPqfiHVojno27N8WkZ7dDte1XYSsZ8LGfgfygP y/9vDKlD8waa0l1PdpUSUOCxmJdmlRRkMC9y6nQO8IniJCXdg7zqlTmoCZBaEBSqL A5snOs1ayZWJ2mZPlpSmcwOfBtsLluPYMH0e8vM3A5uazqlhjr09a5mj/7jE1eAMN Igc0ZHriVM6dRx8DN9zh5uOmDZtO/4TJ2TOQjkJiCsqosPcUJi/oZDXOhHvDS44DU bAFSKb90Apf2AvjQ4e0Lr4JDXHFzHePhIlUXQiM6Mo3MmZd/KQi1ZHAmIdBzuhlfE eIpTcStfAXJJgLIZRA== X-UI-Sender-Class: 724b4f7f-cbec-4199-ad4e-598c01a50d3a Received: from [192.168.2.130] ([79.251.201.250]) by mail.gmx.net (mrgmx104 [212.227.17.168]) with ESMTPSA (Nemesis) id 1MG9g4-1td5Wp10DU-0070d2; Fri, 07 Feb 2025 17:51:47 +0100 Message-ID: <65d875b7-8ea7-43ff-9dbc-a1e335073115@gmx.de> Date: Fri, 7 Feb 2025 17:51:45 +0100 Precedence: bulk list-help: list-post: List-Id: internals.lists.php.net x-ms-reactions: disallow MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PHP-DEV] [RFC] Pipe Operator (again) Content-Language: de-DE To: Larry Garfield , php internals References: In-Reply-To: Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable X-Provags-ID: V03:K1:ifVEcn30h416JWlHRLJA8iOeHmhEDmhKHsdqy3yBF25ahziYf9I Oob+pz+bcrtOS0+sei48PWp8oZg1Ezl+0RirrvUeekG4T8YIdn2vLNkV8PIt3cb5kU8Xi0k pihiK48NxkjB9FEAF0HDgsoHdGKN2CCQ184muZ0SN0AwZ0mHGTq9BI/WYSPq6XloKgTlAl+ 3IbXpa/irrkwc7vJm9Ktg== UI-OutboundReport: notjunk:1;M01:P0:wBscdkuuPPc=;Lj4wQqabcfYUxKqqK40wb1iRr4D leuC6xYXvfPoWx8sv669RaNi7zO5U2/lSLozOdsskVUH2/CVcELVXV1wnAFMsHH8d0vpAD+Tz /0krQyqOtQPtDwPZnnLAEi/cGog7otKNp/cJum4j+fdTfiB70PAnaEHwcasnnGfEyYEvacT8S EdT6/4bFtkSAb4Tk1EU9CPL4b54psXlQpyjG8pW/VrylKWmwwpwxnAnTpyHist4/n7+AmvMHm unb/JrOuR6OIQw8w+AoU6Ky6I1hYA3eazybbBHxcg0y3Z3ygEXOB+t04gc1RGsre052RIFJ6o yay3x3r3EkUOwmE9OcGbKv2cSXxXyIxIZU63vuIIPYkYnAc/ht5sUK8NoxqIJCiplOqR1FVz0 mCZ8muEeYiKBdDnLX15d4hVGDZ1rATir0XPBXcsmR+mk8o//NpASjGkqR9aUGiQgvZ7pqFnwZ rz+PqozV5QfZXmh+BzmccOJuVnGCxOLJvwmwXtQBzC1qUwG04TfMkGi0n//IJg5viC/dOG9ui oUsnKc3ic2PEhU8qQhTXf9NlKsr5PCJFjkxg8WhA1P6B3ORQW5vGjms9Fp2RBCJ9IHLBjC0Sr iO0qT25Za0iaht881IuGizj3u1uGbWet9ChJVX/6It4ZySfxqxqySTFSpCdfI/rO/T3KL47oB vSK9Y4hfHiI9nBpKTjpQFcxoPWCr6YWut3taHlnGpgZWp86Li7n58MmLoALoF0ylL+4jUAnjE uCOda7Z2OKPGX5MfFNne798JoG4SKGl8ZyB14YHCJfexX6xWwADHC5MxEpjNpNdPtZS9/Qp6d yueWgsyHE2aV8YkP74BBslO6CTjeg6LB+K0rVxbycho7N3VETaqGWTGcJRhIgJCtd0QrAfSq/ bWrqZagrK6XQ0QVpyA37YR21DX9XOw8SaGrAOvqO0T5woAvQcRtt/wtqlz2CjgXPXVkb8Qc9b vLNsJcopkM6xZSIaB3Ur3Kw9mONeRH+DoyJu+SW848fDKMCFZ3kgbIcTSycP3ltdIkBnME08V tEGbWylVwJRhzJdDbEYEJzUprBPqNkv+iiGVle6Tz+E7MG1GpkbZlTmY9Fq10pwfLtbeA9PWh 3+222VMetIhSxKIujhauwS9/Nt0IBNtJoXcY5XJhKjtIVDmOhqMVnPnFm4Zwf1WmsoBQyHKaT dzIl+BBlJO8ChgqT4zbS/klL96Z1tNLlxsT6mFAh9Ru+e0uhbDITnohKL+WeVgF4ZEMyloDrW AxCavOeikC6fMvukTBqw4drRwgBvyDnxT81Vvc/0INNpd46mXQniOdDM+kzSZArtJqBp6gsXx aHxvTHkr0SIV0DGOR9tUcpHVbgQt+xpfUP2xLGZGFSxourBSWZ5YwFGoPX/g7SctClHfoSlRW mJUpXyqmaCZvMWeX+i6M94KFf3tX6S3gE/5I83dkVYgTkoaPIVrWzyCKiB From: cmbecker69@gmx.de ("Christoph M. Becker") On 07.02.2025 at 05:57, Larry Garfield wrote: > Hi folks. A few years ago I posted an RFC for a pipe operator, as seen = in many other languages. At the time it didn't pass, in no small part bec= ause the implementation was a bit shaky and it was right before freeze. N= onetheless, there are now even more (bad) user-space implementations in th= e wild, as it gets brought up frequently in "what do you want in PHP?" thr= eads (though nowhere near generics or better async, of course), so it seem= s clear there is demand in the market for it. > > It is now back with a better implementation (many thanks to Ilija for hi= s help and guidance in that), and it's nowhere close to freeze, so here we= go again: > > https://wiki.php.net/rfc/pipe-operator-v3 Thank you! I very much appreciate the simplicity (and efficiency) of the implementation. > Of particular note, since the last RFC I have concluded that a compose o= perator is a necessary complement to a pipe operator. However, it's also = going to be notably more work, and the two operators don't actually intera= ct at all at the code level, so since people keep saying "Small RFCs!", he= re's a small RFC. :-) Fair enough. And with the pipe operator, one might live without a compose operator, e.g. $f1 =3D fn($x) =3D> 2 * $x; $f2 =3D fn($x) =3D> $x + 3; // $f3 =3D $f2 =E2=88=98 $f1 $f3 =3D fn($x) =3D> $x |> $f1 |> $f2; Christoph