Currently, Python does not have a nice way of composing functions, and right now you would have to do lambda x:f(g(x)) when with this syntax it could easily be f@g or f&g.I imagine some issues may occur if you have functions taking multiple arguments, or you want to have some of them pre-filled, which is where another operator could be used.
This, and much more, has been discussed in `functools.pipe` - Function Composition Utility
without delving into the matter of whether this should be baked into the language, it is something easily feasible if a project would make intense use of those.
One thing easy to perceive when writing this sort of code is that the amount of choices on how this should behave explodes geometrically. (e.g. how to treat args and kwargs, multiple return values)
Summary of previous discussions: function composition assumes and works great when input and output are a single object, possibly a collection. It falls apart when there are multiple inputs and input can be passed by either position or name. In python, simple compositions like `def sincos(x): return sin(cos(x)) are rather rare.
Multiple output are returned as a tuple. If all inputs were passed by position, they could be considered a tuple. Then composition would make more sense.
A discussion that attempted to addresses the bigger picture was: Introduce funnel operator i,e '|>' to allow for generator pipelines - #358 by jamsamcam