[Rd] \>

Duncan Murdoch murdoch@dunc@n @end|ng |rom gm@||@com
Sun Jun 30 01:31:59 CEST 2024


I agree with you (I think we may be similarly aged), but there is the 
`magrittr::debug_pipe()` function, which can be inserted anywhere into 
either kind of pipe.  It will call `debug()` at that point, and let you 
examine the current value, before passing it on to the next entry.

You can't single step through a pipe (as far as I know), but with that 
modification, you can see what you've got at any point.

Duncan Murdoch


On 2024-06-29 6:57 p.m., Spencer Graves wrote:
> Hi, Duncan:
> 
> 
> On 6/29/24 17:24, Duncan Murdoch wrote:
>>
>>>        Yes. I'm not yet facile with "|>", but I'm learning.
>>>
>>>
>>>        Spencer Graves
>>
>> There's very little to know.  This:
>>
>>        x |> f() |> g()
>>
>> is just a different way of writing
>>
>>       g(f(x))
>>
>> If f() or g() have extra arguments, just add them afterwards:
>>
>>       x |> f(a = 1) |> g(b = 2)
>>
>> is just
>>
>>       g(f(x, a = 1), b = 2)
> 
> 
> 	  Agreed. If I understand correctly, the supporters of the former think
> it's easier to highlight and execute a subset of the earlier character
> string, e.g., "x |> f(a = 1)" than the corresponding subset of the
> latter, "f(x, a = 1)". I remain unconvinced.
> 
> 
> 	  For debugging, I prefer the following:
> 
> 
> 	  fx1 <- f(x, a = 1)
> 	  g(fx1, b=2)
> 
> 
> 	  Yes, "fx1" occupies storage space that the other two do not. Ir you
> are writing code for an 8086, the difference in important. However, for
> my work, ease of debugging is important, which is why I prefer, "fx1 <-
> f(x, a = 1); g(fx1, b=2)".
> 
> 
> 	  Thanks, again, for the reply.
> 	  Spencer Graves
> 
>>
>> This isn't quite true of the magrittr pipe, but it is exactly true of
>> the base pipe.
>>
>> Duncan Murdoch
>>



More information about the R-devel mailing list