Siano "#" e "◊" delle operazioni (ad es. "+", "/", "·", …)
In 
x
 f 
x#3
 e 
x
 g 
x◊5
  x indica un generico input.
In f(g(a)) l'input di g è a ed è a che devo mettere al posto di x entrando nel box [g]; l'input di f è g(a) ed è tutto questo che devo mettere al posto di x entrando nel box [f]:
a
 g 
a◊5
 f 
(a◊5)#3

(1)  f(g(2)) = f(2·2.7) = f(5.4) = 5.4·1.5 = 8.1. Si ottiene lo stesso valore per g(f(2)). Se non svolgiamo direttamente i calcoli otteniamo:  f(g(2)) = f(2·2.7) = 2·2.7·1.5, e, analogamente, g(f(2)) = g(2·1.5) = 2·1.5·2.7. L'equivalenza dei due termini deriva dal fatto che i termini di una sequenza di moltiplicazioni possono essere riordinati senza che muti il risultato. Più in generale, qualunque sia x, f(g(x)) = x·2.7·1.5 = x·1.5·2.7 = g(f(x))
(2)  f(g(0)) = f(0) = 1, g(f(0)) = g(1) = 3; esiste almeno un input per il quale f(g(.)) e g(f(.)) hanno output diversi, quindi le due funzioni sono diverse.

(3)  f(g(0)) = f(0+1) = f(1) = 1·1 = 1; g(f(0)) = g(0·0) = g(0) = 0+1 = 1; il fatto che f(g(0)) = g(f(0)) non permette di concludere che f(g(.))=g(f(.)): potrebbero esservi input per cui le due funzioni hanno output diversi. Infatti f(g(1)) = f(2) = 4, g(f(1)) = g(1) = 2.  Del resto, se si espandono f(g(x)) e g(f(x)) si ottengono f(g(x)) (x+1)2 (x+1)(x+1) x2+2x+1 e g(f(x)) x2+1 che sono uguali solo se 2x=0, ossia se x=0. Schizzando i grafici di y=(x+1)2 e y=x2+1 si sarebbe subito visto che si intersecano solo per x=0.  

(4)  f(-x) = (-x)2 = x2;  f(|x|) = |x|2 = x2;  √f(-x) = √(x2) = |x|.

Per altri commenti: funzione (1) neGli Oggetti Matematici; per il tracciamento di grafici di funzioni composte come quelle in (3): funzione (2).