algebra – Lambda Calculus: Re-Ordering Arguments

Given any multivariable expression in Lambda Calculus (LC), e.g. for an arbitrary LC expression “op” for some non-commutative operation:

E = (x (y ( op x y ) ) )

Does there exist an LC expression which will transform E into the expression:

F = (y (x ( op x y ) ) )


If so, how can such an expression be generalized such that expressions of any number of variables can be transformed such that arguments are in any desired order?

If an extension to LC is necessary, what options are available?

Citations to literature would be welcome.