From murdoch@dunc@n @end|ng |rom gm@||@com  Fri Dec  4 12:50:39 2020
From: murdoch@dunc@n @end|ng |rom gm@||@com (Duncan Murdoch)
Date: Fri, 4 Dec 2020 06:50:39 -0500
Subject: [Rd] New pipe operator
Message-ID: <e55c2093-0bb5-5f9b-5521-0ca8bdf35953@gmail.com>

Just saw this on the R-devel news:


R now provides a simple native pipe syntax ?|>? as well as a shorthand 
notation for creating functions, e.g. ?\(x) x + 1? is parsed as 
?function(x) x + 1?. The pipe implementation as a syntax transformation 
was motivated by suggestions from Jim Hester and Lionel Henry. These 
features are experimental and may change prior to release.


This is a good addition; by using "|>" instead of "%>%" there should be 
a chance to get operator precedence right.  That said, the ?Syntax help 
topic hasn't been updated, so I'm not sure where it fits in.

There are some choices that take a little getting used to:

 > mtcars |> head
Error: The pipe operator requires a function call or an anonymous 
function expression as RHS

(I need to say mtcars |> head() instead.)  This sometimes leads to error 
messages that are somewhat confusing:

 > mtcars |> magrittr::debug_pipe |> head
Error: function '::' not supported in RHS call of a pipe

but

mtcars |> magrittr::debug_pipe() |> head()

works.

Overall, I think this is a great addition, though it's going to be 
disruptive for a while.

Duncan Murdoch



[Rd] New pipe operator
Duncan Murdoch