Разлика између функционалног програмирања и императивног програмирања

Кључна разлика - функционална Програмирање вс императивно програмирање
 

Тхе кључна разлика Између функционалног програмирања и императивног програмирања је то функционално програмирање рачуна рачуна као математичке функције и избегава промену стања и променљивих података, док императивно програмирање користи изјаве које мењају стање програма.

Програмска парадигма пружа стил изградње структуре и елемената рачунарског програма. Парадигме програмирања помажу у класификацији програмских језика на основу њихових карактеристика. Програмски језик може утицати на више парадигми. У објектно оријентисаној парадигми програм се структуира помоћу објеката, а објекти прослеђују поруке користећи методе. Логичко програмирање може рачунање изразити искључиво математичком логиком. Још две програмске парадигме су функционално програмирање и императив. Функционално програмирање омогућава изражавање рачуна као процену математичких функција. Императивно програмирање пружа изјаве које изричито мењају стање меморије. Овај чланак говори о разлици између функционалног и императивног програмирања.

САДРЖАЈ

1. Преглед и кључне разлике
2. Шта је функционално програмирање
3. Шта је императивно програмирање
4. Сличности између функционалног програмирања и императивног програмирања
5. Упоредно упоређивање - функционално програмирање и императивно програмирање у табеларном облику
6. Резиме

Шта је функционално програмирање?

Функционално програмирање засновано је на математици. Кључни принцип функционалног програмирања је да се све рачунање сматра комбинацијом засебних математичких функција. Математичка функција мапира улазе у излазе. Претпоставимо да постоји функција која се зове ф (к) = к * к. Вредност к је пресликана на излаз 1. к вредност 2 је мапирана на излаз 4. к вредност 3 је мапирана на излаз 9 и тако даље.

Слика 01: Пример језика функционалног програмирања - Хаскелл

У функционалном програмирању узимају се у обзир обрасци. Функционални програмски језици Хаскелл, користи метод у наставку да би збројио бројеве.

Функција зброја има целе вредности, а резултат ће такође бити цео број. Може се написати као збир: [инт] -> инт. Сума се може обавити следећим обрасцима.

сума [н] = н, сума једног броја је сам број.

Ако постоји листа бројева, може се написати на следећи начин. Н представља први број, а нс други бројеви

сума (н, нс) = н + сума нс.

Горњи обрасци се могу применити за проналажење сума три броја који су 3,4,5.

3 + сума [4,5]

3 + (4 + сума [5])

3+ 4 + 5 = 12

Каже се да функција или израз има нуспојаве ако модификује неко стање изван свог опсега или има видљиву интеракцију са својим позивним функцијама поред повратне вредности. Функционално програмирање минимизира ове нежељене ефекте. Промјене стања не овисе о улазима функција. То је корисно када разумете понашање програма. Једна мана функционалног програмирања је та што је учење функционалног програмирања теже у поређењу с императивним програмирањем.

Шта је императивно програмирање?

Императивно програмирање је програмска парадигма која користи изјаве које мењају стање програма. Фокусира се на описивање рада програма. Програмски језици као што су Јава, Ц и Ц # су императивни програмски језици. Омогућава корак по корак поступак шта треба учинити. Императивни програмски језици садрже структуре попут иф, елсе, вхиле, за петље, класе, објекте и функције.

Слика 02: Пример императивног програмског језика - Јава

Збир десет бројева може се наћи на Јави на следећи начин. У свакој итерацији, и вриједност се додаје зброју и додјељује се варијабли зброја. У свакој итерацији вриједност зброја се наставља са додавањем претходно израчунатој суми.

инт сума = 0;

за (инт и = 0; и< =10; i++)

сума = сума + и;

Императивно програмирање је лако научити, разумети и исправити грешке. Програмско стање је лако пронаћи због употребе променљивих стања. Неке недостатке могу да чине код дуготрајнијим и могу да смање намањивост.

Која је сличност функционалног програмирања и императивног програмирања?

  • И функционално и императивно програмирање су парадигме програмирања.

Која је разлика између функционалног програмирања и императивног програмирања?

Функционално вс императивно програмирање

Функционално програмирање је парадигма програмирања која рачунање рачуна као процену математичких функција и избегава промену стања и променљивих података. Императивно програмирање је парадигма програмирања која користи изјаве које мењају стање програма.
 Структуре
Функционално програмирање садржи позиве функција и функције вишег реда. Императивно програмирање садржи ако, у супротном, за петље, функције, класе и објекте.
Програмски језици
Сцала, Хаскелл и Лисп су функционални програмски језици. Ц, Ц ++, Јава су императивни програмски језици.
 Фокус
Функционално програмирање фокусира се на крајњи резултат. Императивно програмирање фокусира се на описивање рада програма.
Једноставност
Функционално програмирање је тешко. Императивно програмирање је лакше.

Резиме - функционалан Програмирање вс императивно програмирање

Програмска парадигма пружа стил изградње структуре и елемената рачунарског програма. Функционално и императивно програмирање су два од њих. Разлика између функционалног и императивног програмирања је та што функционално програмирање рачуна рачуна као математичке функције и избегава промену стања и променљивих података, док императивно програмирање користи изјаве које мењају стање програма.

Референце:

1. "Императивно програмирање." Википедиа, Фондација Викимедиа, 28. марта 2018. Доступно овде  
2. "Функционално програмирање." Википедиа, Фондација Викимедиа, 28. марта 2018. Доступно овде  
3.Цомпутерфхиле. ИоуТубе, ИоуТубе, 30. августа 2013. Доступно овде 

Љубазношћу слике:

1.'Хаскелл Лого'Би Хаскелл1965 - сопствени рад, (ЦЦ БИ-СА 3.0) преко Цоммонс Викимедиа 
2.'14485179234'би Снимке заслона за Линук (ЦЦ БИ 2.0) преко Флицкр-а