# Fixing the Piping/Chaining Issue (Rev 3)

**URL:** <https://discourse.julialang.org/t/fixing-the-piping-chaining-issue-rev-3/90836>\
**Category:** Internals & Design\
**Tags:** multithreading, syntax, piping, chaining, threading\
**Created:** [November 26, 2022, 2:50am UTC](https://discourse.julialang.org/t/fixing-the-piping-chaining-issue-rev-3/90836 "2022-11-26T02:50:46Z")\
**Posts on this page:** 1\
**Showing post:** 67

<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:** [December 8, 2022, 3:59am UTC](https://discourse.julialang.org/t/fixing-the-piping-chaining-issue-rev-3/90836/67 "2022-12-08T03:59:55Z")

</div>

> [@adienes](#):
>
> Generic partial application is really hard to be consistent and correct in all cases

This is categorically incorrect. Partial application is very simple and straightforward.

What becomes difficult, is when it’s desired to cascade multiple function calls in sequence. Most of the controversy in #24990 has revolved around how to use `_` to satisfy this desire, of building “quick lambdas” (i.e., _not_ partial application), and to do it at the parser level. Unsurprisingly, _that’s_ difficult.

However, as has been explored [here](https://discourse.julialang.org/t/fixing-the-piping-chaining-partial-application-issue-rev-2/90408/7) (and expanded upon [here](https://discourse.julialang.org/t/fixing-the-piping-chaining-partial-application-issue-rev-2/90408/26) and [here](https://discourse.julialang.org/t/fixing-the-piping-chaining-partial-application-issue-rev-2/90408/35)), it works quite handsomely when paired with function composition. The relevant discussion is [here](https://github.com/JuliaLang/julia/pull/24990#issuecomment-350728180).

> [@adienes](#):
>
> will almost certainly not be coming to Julia anytime soon.

That depends on how rational the Julia community can be. It seems that circling the wagons to make underscores behave as they do in Chain.jl has a tendency to whip people up into a fervor, making things difficult 😅

> [@adienes](#):
>
> Where now `l2norm` is a function.

By my proposal, `l2norm = {it.^2, sum, sqrt}`, and if PR#24990 is accepted, `l2norm = {_.^2, sum, sqrt}`, so I don’t see where your proposal adds any utility (other than defending your persistent desire to use `_` as a stand-in for `it`).

> [@adienes](#):
>
> we are possibly starting to go in circles

Then I shall draw your attention back to this:

> [@uniment](#):
>
> Which brings us back to:
> 
> > [@uniment](#):
> >
> > Can you explain your reasoning for continuing to oppose it, so I can better understand your viewpoint?

---

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