### 6.17.1 Différence entre fonction et expression

Une fonction `f` est définie par exemple par :
`f(x):=x```^```2-1` ou encore par `f:=x->x```^```2-1`
cela signifie que pour tous les x, f(x) est égale à l’expression x2−1.
On pourra ainsi taper `f(2)` pour avoir la valeur de f en x=2.
Par contre si on définit :
`g:=x```^```2-1` cela signifie que `g` est une variable qui contient l’expression x2−1. Pour avoir la valeur de g en x=2 il faut alors écrire :
`subst(g,x=2)` car g est une expression qui dépend de x.
Aussi, lorsque l’argument d’une commande est une fonction il faut mettre comme argument, soit par exemple `x->x```^```2-1`, soit `f` (si `f` est une fonction qui a été définie auparavant par exemple par `f(x):=x```^```2-1`) et
lorsque l’argument d’une commande est une expression on met comme argument, soit par exemple `x```^```2-1`, soit `g` (si `g` est une variable que l’on a définie auparavant par exemple `g:=x```^```2-1`), soit `f(x)` (si `f` est une fonction qui a été définie auparavant par exemple `f(x):=x```^```2-1`).