sobota, 10 lutego 2018

Paradygmat funkcyjny - co to jest?

Paradygmat funkcyjny obok kilku inny (obiektowego, strukturalnego, aspektowego, w logice) to jeden z bardziej popularnych paradygmatów programowania. W porównaniu do programowania obiektowego i strukturalnego w paradygmacie funkcyjnym nie ma pojęcia czasu jeżeli chodzi o stan pamięci w programie.

W podejściu obiektowym i strukturalnym program operuje na zmiennych jako miejscach w pamięci i zmienia je w czasie. W paradygmacie funkcyjnym bardzo unika się podejścia tego typu a program jest wynikiem funkcji z przyjętymi argumentami.

Teoretycznie każdy problem da się rozwiązać w paradygmacie funkcyjnym.

Jeżeli każdy program można zapisać funkcyjnie to dlaczego znacząca większość programów jest pisana obiektowo?
     Główny powód to fakt że część programów dużo łatwiej zapisać obiektowo a część dużo łatwiej funkcyjnie. Jednak tych które łatwiej zapisać obiektowo jest znacząco więcej niż tych które można zapisać funkcyjnie.

Jakie są główne trudności pisania programów funkcyjnych?
     Wielokrotnie zagnieżdżona rekurencja można powodować łatwe wejście w samo-zapętlenie się programu, dodatkowo funkcja będąca dowołaniem do funkcja która jest funkcją będącą efektem wywołania kilku kolejnych funkcji sprawia że kod w ten sposób zapisany jest mało czytelny i przy większych zespołach trudniej przekazać informacje o sposobie działania kodu. Kod pisany funkcyjnie jest często dużo trudniejszy w zrozumieniu niż kod napisany obiektowo przez co przy większych projektach wydłuża się czas na zrozumienie istniejącego kodu.

Więcej o paradygmacie funkcyjnym: https://pl.wikipedia.org/wiki/Programowanie_funkcyjne

Brak komentarzy:

Prześlij komentarz