Differenza tra programmazione funzionale e programmazione imperativa

Sommario:

Differenza tra programmazione funzionale e programmazione imperativa
Differenza tra programmazione funzionale e programmazione imperativa

Video: Differenza tra programmazione funzionale e programmazione imperativa

Video: Differenza tra programmazione funzionale e programmazione imperativa
Video: Programmazione IMPERATIVA e FUNZIONALE: una panoramica - AFK UNDER THE HOOD 2024, Luglio
Anonim

Differenza chiave: programmazione funzionale vs programmazione imperativa

La differenza fondamentale tra programmazione funzionale e programmazione imperativa è che la programmazione funzionale considera i calcoli come funzioni matematiche ed evita di cambiare stato e dati mutevoli mentre la programmazione imperativa usa le istruzioni che cambiano lo stato del programma.

Un paradigma di programmazione fornisce uno stile per costruire la struttura e gli elementi di un programma per computer. I paradigmi di programmazione aiutano a classificare i linguaggi di programmazione in base alle loro caratteristiche. Un linguaggio di programmazione potrebbe influenzare più paradigmi. Nel paradigma orientato agli oggetti, il programma è strutturato utilizzando oggetti e gli oggetti trasmettono messaggi utilizzando metodi. La programmazione logica può esprimere il calcolo esclusivamente in termini di logica matematica. Altri due paradigmi di programmazione sono la programmazione funzionale e la programmazione imperativa. La programmazione funzionale consente di esprimere calcoli come valutazione di funzioni matematiche. La programmazione imperativa fornisce istruzioni che modificano esplicitamente lo stato della memoria. Questo articolo discute la differenza tra programmazione funzionale e programmazione imperativa.

Cos'è la programmazione funzionale?

La programmazione funzionale si basa sulla matematica. Il principio chiave alla base della programmazione funzionale è che tutto il calcolo è considerato come una combinazione di funzioni matematiche separate. Una funzione matematica associa gli input agli output. Supponiamo che esista una funzione chiamata f(x)=xx. Il valore x 1 viene mappato sull'uscita 1. Il valore x 2 viene mappato sull'uscita 4. Il valore x 3 è mappato sull'uscita 9 e così via.

Differenza tra programmazione funzionale e programmazione imperativa
Differenza tra programmazione funzionale e programmazione imperativa

Figura 01: Esempio di linguaggio di programmazione funzionale – Haskell

Nella programmazione funzionale, vengono presi in considerazione i modelli. I linguaggi di programmazione funzionale Haskell, utilizzano il metodo seguente per trovare la somma dei numeri.

La funzione sum ha valori interi e anche il risultato sarà un intero. Può essere scritto come somma: [int] -> int. La somma può essere eseguita seguendo i modelli seguenti.

sum[n]=n, la somma di un numero è il numero stesso.

Se c'è un elenco di numeri, può essere scritto come segue. La n rappresenta il primo numero e ns rappresenta gli altri numeri

somma (n, ns)=n + somma ns.

Gli schemi sopra possono essere applicati per trovare la somma di tre numeri che sono 3, 4, 5.

3 + somma [4, 5]

3 + (4 + somma [5])

3+ 4 + 5=12

Si dice che una funzione o un'espressione abbia effetti collaterali se modifica uno stato al di fuori del suo ambito o ha un'interazione osservabile con le sue funzioni chiamanti oltre al valore restituito. La programmazione funzionale riduce al minimo questi effetti collaterali. I cambiamenti di stato non dipendono dagli ingressi della funzione. È utile per comprendere il comportamento del programma. Uno svantaggio della programmazione funzionale è che l'apprendimento della programmazione funzionale è più difficile rispetto alla programmazione imperativa.

Cos'è la programmazione imperativa?

La programmazione imperativa è un paradigma di programmazione che utilizza le istruzioni che cambiano lo stato di un programma. Si concentra sulla descrizione di come funziona un programma. I linguaggi di programmazione come Java, C e C sono linguaggi di programmazione imperativi. Fornisce una procedura passo passo su cosa fare. I linguaggi di programmazione imperativi contengono strutture come if, else, while, for loop, classi, oggetti e funzioni.

Differenza chiave tra programmazione funzionale e programmazione imperativa
Differenza chiave tra programmazione funzionale e programmazione imperativa

Figura 02: Esempio di linguaggio di programmazione imperativo – Java

La somma di dieci numeri può essere trovata in Java come segue. In ogni iterazione, il valore i viene aggiunto alla somma e assegnato alla variabile sum. In ogni iterazione, il valore della somma continua a sommarsi alla somma calcolata in precedenza.

int sum=0;

for (int i=0; i<=10; i++) {

somma=somma + i;

}

La programmazione imperativa è facile da imparare, comprendere ed eseguire il debug. È facile trovare lo stato del programma grazie all'utilizzo di variabili di stato. Alcuni svantaggi sono che può rendere il codice lungo e può anche ridurre al minimo la scalabilità.

Qual è la somiglianza tra la programmazione funzionale e la programmazione imperativa?

Sia la programmazione funzionale che la programmazione imperativa sono paradigmi di programmazione

Qual è la differenza tra programmazione funzionale e programmazione imperativa?

Programmazione funzionale e imperativa

La programmazione funzionale è un paradigma di programmazione che considera il calcolo come la valutazione di funzioni matematiche ed evita il cambiamento di stato e dati mutevoli. La programmazione imperativa è un paradigma di programmazione che utilizza istruzioni che cambiano lo stato di un programma.
Strutture
La programmazione funzionale contiene chiamate di funzione e funzioni di ordine superiore. La programmazione imperativa contiene if, else, while, cicli for, funzioni, classi e oggetti.
Lingue di programmazione
Scala, Haskell e Lisp sono linguaggi di programmazione funzionali. C, C++, Java sono linguaggi di programmazione imperativi.
Focus
La programmazione funzionale si concentra sul risultato finale. La programmazione imperativa si concentra sulla descrizione di come funziona un programma.
Semplicità
La programmazione funzionale è difficile. La programmazione imperativa è più semplice.

Riepilogo – Programmazione funzionale vs programmazione imperativa

Un paradigma di programmazione fornisce uno stile per costruire la struttura e gli elementi di un programma per computer. La programmazione funzionale e la programmazione imperativa sono due di queste. La differenza tra programmazione funzionale e programmazione imperativa è che la programmazione funzionale considera i calcoli come funzioni matematiche ed evita di cambiare stato e dati mutevoli mentre la programmazione imperativa usa le istruzioni che cambiano lo stato del programma.

Consigliato: