Różnica między programowaniem funkcjonalnym a programowaniem imperatywnym

Spisu treści:

Różnica między programowaniem funkcjonalnym a programowaniem imperatywnym
Różnica między programowaniem funkcjonalnym a programowaniem imperatywnym

Wideo: Różnica między programowaniem funkcjonalnym a programowaniem imperatywnym

Wideo: Różnica między programowaniem funkcjonalnym a programowaniem imperatywnym
Wideo: Imperative vs Declarative Programming 2024, Lipiec
Anonim

Kluczowa różnica – programowanie funkcjonalne a programowanie imperatywne

Kluczowa różnica między programowaniem funkcjonalnym a programowaniem imperatywnym polega na tym, że programowanie funkcjonalne traktuje obliczenia jako funkcje matematyczne i unika zmiany stanu oraz zmiennych danych, podczas gdy programowanie imperatywne używa instrukcji zmieniających stan programu.

Paradygmat programowania zapewnia styl budowania struktury i elementów programu komputerowego. Paradygmaty programowania pomagają klasyfikować języki programowania na podstawie ich cech. Język programowania może wpływać na więcej paradygmatów. W paradygmacie zorientowanym obiektowo program jest skonstruowany za pomocą obiektów, a obiekty przekazują komunikaty za pomocą metod. Programowanie logiczne może wyrażać obliczenia wyłącznie w kategoriach logiki matematycznej. Kolejne dwa paradygmaty programowania to programowanie funkcjonalne i programowanie imperatywne. Programowanie funkcjonalne umożliwia wyrażanie obliczeń jako oceny funkcji matematycznych. Programowanie imperatywne dostarcza instrukcji, które jawnie zmieniają stan pamięci. W tym artykule omówiono różnicę między programowaniem funkcjonalnym a programowaniem imperatywnym.

Co to jest programowanie funkcjonalne?

Programowanie funkcyjne opiera się na matematyce. Kluczową zasadą programowania funkcjonalnego jest to, że wszystkie obliczenia są traktowane jako kombinacja oddzielnych funkcji matematycznych. Funkcja matematyczna mapuje wejścia na wyjścia. Załóżmy, że istnieje funkcja o nazwie f(x)=xx. Wartość x 1 jest mapowana na wyjście 1. Wartość x 2 jest mapowana na wyjście 4. Wartość x 3 jest mapowana na wyjście 9 i tak dalej.

Różnica między programowaniem funkcjonalnym a programowaniem imperatywnym
Różnica między programowaniem funkcjonalnym a programowaniem imperatywnym

Rysunek 01: Przykład funkcjonalnego języka programowania – Haskell

W programowaniu funkcjonalnym brane są pod uwagę wzorce. Funkcjonalne języki programowania Haskell używają poniższej metody, aby znaleźć sumę liczb.

Funkcja sum ma wartości całkowite, a wynik będzie również liczbą całkowitą. Można go zapisać jako sumę: [int] -> int. Sumowanie można wykonać postępując zgodnie z poniższymi wzorami.

sum[n]=n, suma jednej liczby to sama liczba.

Jeśli istnieje lista liczb, można ją zapisać w następujący sposób. N reprezentuje pierwszą liczbę, a ns reprezentuje pozostałe liczby

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

Powyższe wzorce można zastosować, aby znaleźć sumę trzech liczb, które są 3, 4, 5.

3 + suma [4, 5]

3 + (4 + suma [5])

3+ 4 + 5=12

O funkcji lub wyrażeniu mówi się, że ma skutki uboczne, jeśli modyfikuje jakiś stan poza swoim zakresem lub ma obserwowalną interakcję z funkcjami wywołującymi oprócz wartości zwracanej. Programowanie funkcjonalne minimalizuje te skutki uboczne. Zmiany stanu nie zależą od wejść funkcji. Jest to przydatne przy zrozumieniu zachowania programu. Jedną z wad programowania funkcjonalnego jest to, że nauka programowania funkcjonalnego jest trudniejsza w porównaniu z programowaniem imperatywnym.

Co to jest programowanie imperatywne?

Programowanie imperatywne to paradygmat programowania, który używa instrukcji zmieniających stan programu. Koncentruje się na opisie działania programu. Języki programowania, takie jak Java, C i C, są imperatywnymi językami programowania. Przedstawia krok po kroku procedurę postępowania. Języki programowania imperatywnego zawierają struktury takie jak if, else, while, pętle for, klasy, obiekty i funkcje.

Kluczowa różnica między programowaniem funkcjonalnym a programowaniem imperatywnym
Kluczowa różnica między programowaniem funkcjonalnym a programowaniem imperatywnym

Rysunek 02: Przykład imperatywnego języka programowania - Java

Podsumowanie dziesięciu liczb można znaleźć w Javie w następujący sposób. W każdej iteracji wartość i jest dodawana do sumy i przypisywana do zmiennej sum. W każdej iteracji wartość sumy jest dodawana do wcześniej obliczonej sumy.

int suma=0;

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

suma=suma + i;

}

Programowanie imperatywne jest łatwe do nauczenia, zrozumienia i debugowania. Łatwo jest znaleźć stan programu dzięki wykorzystaniu zmiennych stanu. Niektóre wady są takie, że może wydłużać kod i minimalizować skalowalność.

Jakie jest podobieństwo między programowaniem funkcjonalnym a programowaniem imperatywnym?

Zarówno programowanie funkcjonalne, jak i programowanie imperatywne to paradygmaty programowania

Jaka jest różnica między programowaniem funkcjonalnym a programowaniem imperatywnym?

Programowanie funkcjonalne a programowanie imperatywne

Programowanie funkcyjne to paradygmat programowania, który traktuje obliczenia jako ocenę funkcji matematycznych i pozwala uniknąć zmiany stanu i zmiennych danych. Programowanie imperatywne to paradygmat programowania, który używa instrukcji zmieniających stan programu.
Struktury
Programowanie funkcyjne zawiera wywołania funkcji i funkcje wyższego rzędu. Programowanie imperatywne zawiera if, else, while, pętle for, funkcje, klasy i obiekty.
Języki programowania
Scala, Haskell i Lisp to funkcjonalne języki programowania. C, C++, Java to imperatywne języki programowania.
Skupienie
Programowanie funkcjonalne skupia się na efekcie końcowym. Programowanie imperatywne skupia się na opisie działania programu.
Prostota
Programowanie funkcyjne jest trudne. Programowanie imperatywne jest łatwiejsze.

Podsumowanie – Programowanie funkcjonalne a programowanie imperatywne

Paradygmat programowania zapewnia styl budowania struktury i elementów programu komputerowego. Programowanie funkcjonalne i programowanie imperatywne to dwa z nich. Różnica między programowaniem funkcjonalnym a programowaniem imperatywnym polega na tym, że programowanie funkcjonalne traktuje obliczenia jako funkcje matematyczne i unika zmiany stanu i zmiennych danych, podczas gdy programowanie imperatywne używa instrukcji zmieniających stan programu.

Zalecana: