Nøgleforskel - Funktionel programmering vs Imperativ programmering
Hovedforskellen mellem funktionel programmering og tvingende programmering er, at den funktionelle programmering betragter beregningerne som matematiske funktioner og undgår at ændre tilstand og mutable data, mens tvingende programmering bruger udsagnene, der ændrer programtilstanden.
Et programmeringsparadigme giver en stil til at opbygge strukturen og elementerne i et computerprogram. Programmeringsparadigmerne hjælper med at klassificere programmeringssprog baseret på deres funktioner. Et programmeringssprog kan påvirke flere paradigmer. I objektorienteret paradigme er programmet struktureret ved hjælp af objekter, og objekterne sender meddelelser ved hjælp af metoder. Logikprogrammeringen kan udtrykke beregning udelukkende med hensyn til matematisk logik. Yderligere to programmeringsparadigmer er funktionel programmering og tvingende programmering. Funktionel programmering giver mulighed for at udtrykke beregninger som evaluering af matematiske funktioner. Imperativ programmering giver udsagn, der eksplicit ændrer hukommelsens tilstand. Denne artikel diskuterer forskellen mellem funktionel programmering og tvingende programmering.
INDHOLD
1. Oversigt og nøgleforskel
2. Hvad er funktionel programmering
3. Hvad er vigtig programmering
4. Ligheder mellem funktionel programmering og imperativ programmering
5. Sammenligning side om side - Funktionel programmering vs imperativ programmering i tabelform
6. Resumé
Hvad er funktionel programmering?
Funktionel programmering er baseret på matematik. Nøgleprincippet bag funktionel programmering er, at al beregning betragtes som en kombination af separate matematiske funktioner. En matematisk funktion kortlægger input til output. Antag at der er en funktion kaldet f (x) = x * x. X-værdien 1 er kortlagt til output 1. x-værdien 2 er kortlagt til output 4. x-værdien 3 er kortlagt til output 9 og så videre.
Figur 01: Eksempel på funktionelt programmeringssprog - Haskell
Ved funktionel programmering tages mønstrene i betragtning. De funktionelle programmeringssprog Haskell bruger nedenstående metode til at finde summen af numrene.
Som-funktionen har heltalværdier, og resultatet bliver også et heltal. Det kan skrives som sum: [int] -> int. Summationen kan gøres ved at følge nedenstående mønstre.
sum [n] = n, summen af et tal er selve tallet.
Hvis der er en liste med tal, kan den skrives som følger. N repræsenterer det første tal, og ns repræsenterer de andre tal
sum (n, ns) = n + sum ns.
Ovenstående mønstre kan anvendes til at finde summen af tre tal, som er 3,4,5.
3 + sum [4,5]
3 + (4 + sum [5])
3+ 4 + 5 = 12
En funktion eller et udtryk siges at have bivirkninger, hvis det ændrer en tilstand uden for dets anvendelsesområde eller har en observerbar interaktion med sine opkaldsfunktioner udover returværdien. Funktionel programmering minimerer disse bivirkninger. Tilstandsændringerne afhænger ikke af funktionsindgangene. Det er nyttigt, når du forstår programmets opførsel. En ulempe ved funktionel programmering er, at indlæring af funktionel programmering er sværere sammenlignet med tvingende programmering.
Hvad er vigtig programmering?
Imperativ programmering er et programmeringsparadigme, der bruger udsagnene, der ændrer et programs tilstand. Det fokuserer på at beskrive, hvordan et program fungerer. Programmeringssprog som Java, C og C # er bydende programmeringssprog. Det giver en trinvis procedure for, hvad du skal gøre. Imperative programmeringssprog indeholder strukturer som hvis, ellers, mens, til sløjfer, klasser, objekter og funktioner.
Figur 02: Eksempel på imperativt programmeringssprog - Java
Sammenfatningen af ti tal kan findes i Java som følger. I hver iteration tilføjes i-værdien til summen og tildeles sumvariablen. I hver iteration tilføjes sumværdien til den tidligere beregnede sum.
int sum = 0;
for (int i = 0; i <= 10; i ++) {
sum = sum + i;
}
Imperativ programmering er let at lære, forstå og fejlfinde. Det er let at finde programtilstanden på grund af brug af tilstandsvariabler. Nogle ulemper er, at det kan gøre koden lang og også minimere skalerbarheden.
Hvad er ligheden mellem funktionel programmering og imperativ programmering?
Både funktionel programmering og imperativ programmering er programmeringsparadigmer
Hvad er forskellen mellem funktionel programmering og imperativ programmering?
Diff artikel midt foran bordet
Funktionel vs imperativ programmering |
|
Funktionel programmering er et programmeringsparadigme, der betragter beregning som evaluering af matematiske funktioner og undgår at ændre tilstand og mutable data. | Imperativ programmering er et programmeringsparadigme, der bruger udsagn, der ændrer programmets tilstand. |
Strukturer | |
Funktionel programmering indeholder funktionsopkald og højere ordensfunktioner. | Imperativ programmering indeholder hvis, ellers, mens, til sløjfer, funktioner, klasser og objekter. |
Programmeringssprog | |
Scala, Haskell og Lisp er funktionelle programmeringssprog. | C, C ++, Java er bydende programmeringssprog. |
Fokus | |
Funktionel programmering fokuserer på slutresultatet. | Imperativ programmering fokuserer på at beskrive, hvordan et program fungerer. |
Enkelhed | |
Funktionel programmering er hård. | Imperativ programmering er lettere. |
Resumé - Funktionel programmering vs Imperativ programmering
Et programmeringsparadigme giver en stil til at opbygge strukturen og elementerne i et computerprogram. Funktionel programmering og imperativ programmering er to af dem. Forskellen mellem funktionel programmering og tvingende programmering er, at funktionel programmering betragter beregningerne som matematiske funktioner og undgår at ændre tilstand og mutable data, mens tvingende programmering bruger udsagnene, der ændrer programtilstanden.