# Is it possible to use infix notation ~ for functions with one argument or more than 2 arguments?

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,...]]

• How about functions with one argument? – kiss my armpit Dec 28 '13 at 22:11
• 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. The Infix function that you refer to is only a typesetting function. – rm -rf Dec 28 '13 at 22:13
• @StiffJokes I'd use @. edit: @rm -rf: Is the documentation wrong? – shrx Dec 28 '13 at 22:13
• @shrx It's confusing, especially since F1 on ~ takes you there... the Infix function is more for typesetting than the function calls notation. For instance, Prefix[f[x]] will give you f@x, but this f@x is not equivalent to typing out f@x (try evaluating the two). Check out the full forms: Infix[f[x1, x2, x3]] // FullForm and x1~f~x2~f~x3 // FullForm – rm -rf Dec 28 '13 at 22:19
• @rm-rf Oh! I miss the times when those were hot themes here .) – Dr. belisarius Dec 29 '13 at 5:50