According to a Mathematica textbook, we can write N[x,n]
by using infix notation as x ~ N ~ n
. How about other functions with one argument or more than 2 arguments, is it possible?
3 Answers
One can use Sequence
for such purposes
Sequence[]~f~x
x~f~Sequence[]
f[x]
f[x]
x1~f~Sequence[x2, x3]
f[x1, x2, x3]
If, in an input cell, you type the expression,
x1 ~ f ~ x2 ~ f ~ x3
it will evaluate to
f[f[x1,x2],x3]
UNLESS the symbol f has the attribute Flat in which case it will evaluate to
f[x1,x2,x3]
From the Infix[]
documentation page, you can:
x1 ~ f ~ x2 ~ f ~ x3 ~ ... === Infix[f[x1,x2,x3,...]]
-
$\begingroup$ How about functions with one argument? $\endgroup$ Dec 28, 2013 at 22:11
-
1$\begingroup$ Did you actually try what you wrote above? This is wrong. Infix notation is primarily for 2 argument functions and works for multiple arguments when the function is
Flat
. TheInfix
function that you refer to is only a typesetting function. $\endgroup$– rm -rf ♦Dec 28, 2013 at 22:13 -
-
2$\begingroup$ @shrx It's confusing, especially since
F1
on~
takes you there... theInfix
function is more for typesetting than the function calls notation. For instance,Prefix[f[x]]
will give youf@x
, but thisf@x
is not equivalent to typing outf@x
(try evaluating the two). Check out the full forms:Infix[f[x1, x2, x3]] // FullForm
andx1~f~x2~f~x3 // FullForm
$\endgroup$– rm -rf ♦Dec 28, 2013 at 22:19 -
$\begingroup$ @rm-rf Oh! I miss the times when those were hot themes here .) $\endgroup$ Dec 29, 2013 at 5:50