### 5.15.1 The difference between a function and an expression

A function f is defined for example by :

f(x):=x`^`

2-1 or by f:=x->x`^`

2-1

that is to say, for all x, f(x) is equal to the expression
x^{2}−1. In that case, to have the value of f for x=2, input :f(2).

But if the input is
g:=x`^`

2-1, then g is a variable where the
expression x^{2}−1 is stored. In that case, to have the value of g for x=2,
input : subst(g,x=2) (g is an expression depending on x).

When a command expects a function as argument, this argument should
be either the definition of the function (e.g. x->x`^`

2-1)
or a variable name assigned to a function (e.g. f
previously defined by e.g. f(x):=x`^`

2-1).

When a command expects an expression as argument, this argument should
be either the definition of the expression (for example x`^`

2-1),
or a variable name assigned to an expression (e.g.
g previously defined, for example, by
g:=x`^`

2-1), or the evaluation of a function. e.g.
f(x) if f is a previously defined function,
for example, by f(x):=x`^`

2-1).