Vorrei un chiarimento sulla differenza che c’è (se c’è) tra il concetto di funzione in matematica, e il concetto di funzione in informatica, grazie

I due concetti hanno dei punti in comune oltre al nome, tuttavia trattasi di due entità ben diverse: una funzione in matematica indica una legge che lega una variabile all’andamento di un’altra, mentre una funzione in informatica indica invece un blocco di codice che quando eseguito produce dei risultati in modo predeterminato.

Ecco un esempio di funzione in matematica: il seno dell’angolo x.

Come si vede il valore della y dipende da quello della x secondo la legge sopra graficata.

L’insieme dei valori possibili della x (detta variabile indipendente) viene definito dominio della funzione, mentre l’insieme dei valori della y (detta variabile dipendente) viene definito codominio della funzione: possiamo quindi dire che una funzione lega i valori del proprio dominio a quelli del proprio codominio tramite corrispondenza biunivoca. Questo significa anche che una funzione associa un solo valore della y ad ognuno della x, pertanto un grafico che presenti diverse linee non rappresenta una funzione, piuttosto semmai differenti funzioni aventi lo stesso dominio.

Ed ora un esempio di funzione in informatica: somma di due numeri interi (esempio in linguaggio C).

int somma(int num1, int num2) {

    int temp=0;

    temp=num1+num2;

    return temp;

}

Lo spezzone di codice soprastante, che banalmente somma gli interi num1 e num2 utilizzando la variabile di appoggio temporanea temp e restituisce quindi il risultato della somma, presenta sicuramente un’analogia importante con la funzione matematica in quando associa dei valori indipendenti (num1 e num2) ad uno dipendente (il risultato della somma) analogamente a quando fa ad esempio la funzione seno di cui sopra.

Possiamo anche osservare che per ogni dato gruppo di variabili in ingresso (num1 e num2 in questo caso) la funzione restituisce uno ed uno solo tra i possibili valori del risultato, analogamente alla funzione matematica che come detto associa biunivocamente un valore della variabile dipendente ad uno ed uno solo di quella indipendente.

A questo punto possiamo osservare quindi che le due entità che chiamiamo entrambe funzioni, quella matematica e quella informatica, hanno concettualmente lo stesso funzionamento ma si differenziano per l’uso che ne facciamo: la funzione matematica assume infatti una fondamentale importanza nella descrizione matematica di quanto accade in natura, processo altrimenti impossibile senza poter legare grandezze le une alle altre, mentre la funzione in informatica serve sostanzialmente a semplificare e razionalizzare la programmazione limitando la duplicazione del codice e migliorando quindi leggibilità ed efficienza dei programmi.