> <i>operations that “naturally” take more than two parameters, that can’t be decomposed into reasonable two-parameter functions, are surprisingly rare. Simple examples include:<p><pre><code> String substitution: in string X, replace Y with Z.
String padding: pad a string X to width at least Y with character Z.
Dictionary update: given a dictionary D, set D[X] = Y.</code></pre>
</i><p>The obvious solution here is to have a two-parameter function that serves as a product, combining two arguments into one (eg space-based stranding in APL-likes):<p><pre><code> (Y ⨂ Z) replace X
(Y ⨂ Z) pad X
D update X ⨂ Y</code></pre>