# Fixing the Piping/Chaining Issue

**URL:** <https://discourse.julialang.org/t/fixing-the-piping-chaining-issue/89654>\
**Category:** Internals & Design\
**Tags:** proposal, piping, chaining, partial-evaluation, threading\
**Created:** [November 2, 2022, 11:04am UTC](https://discourse.julialang.org/t/fixing-the-piping-chaining-issue/89654 "2022-11-02T11:04:36Z")\
**Posts on this page:** 1\
**Showing post:** 176

<div class="post-metadata">

**Author:** ![uniment](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/uniment/32/24532_2.png) [@uniment](https://discourse.julialang.org/u/uniment)\
**Post date:** [November 9, 2022, 4:14pm UTC](https://discourse.julialang.org/t/fixing-the-piping-chaining-issue/89654/176 "2022-11-09T16:14:56Z")

</div>

> [@c42f](#):
>
> Just unfortunate that the `_` will need to appear in every function along the chain - this is a lot of visual overhead. And the fact that the `_` means two separate things in the same parentheses in `filter(_>10,_)` - I can’t love that, though I imagine I could accept it 🙂

I feel the same way. I do not like the visual noise.

My thought however, as the two approaches are redundant, both require parsing changes, and both have their own learning curves, is that it’s likely difficult to advocate for both simultaneously.

So if I have to pick one, I am compelled to choose the one that’s more generally useful and whose behavior is more obvious.

> [@CameronBieganek](#):
>
> Yeah, @c42f’s JuliaSyntax PR is a bit different from your original proposal. So it is effectively a new proposal. But that’s ok, it’s a drop in the bucket compared to all the proposals in PR #24990. 🙂

I was more referring to the fact that my OP was being kept alive at all, as I had abandoned it 😅

> [@adienes](#):
>
> This seems ok to me, since one of the main motivations for right associativity in the original thread was to allow chains like `obj1 /> func2 /> func3()` without intermediate function calls; now it has to be written more like `ojb1 /> func2() /> func3()`, which is very much not the end of the world.

The motivation for right-associativity was not this; it was for being able to fix multiple arguments. For example, `arr \> filter(isodd)` could also be `arr /> isodd /> filter()`. This would enable things like `myfilt = isodd /> filter` and then `arr /> myfilt()`.

But with underscores, it would be `arr |> filter(isodd, _)` and `myfilt=filter(isodd,_)`, then `arr |> myfilt`.

---

_[View the full topic](https://discourse.julialang.org/t/fixing-the-piping-chaining-issue/89654)._
