Функционално програмирање у Swift језику

Функционално програмирање је декларативна програмска парадигма заснована на ламбда рачуну, у којој се програми третирају као низ математичких функција. Иако поседује неколико важних практичних предности у односу на процедурално програмирање, парадигма је до недавно била слабо присутна у језицима који су најзаступљенији у индустрији, највероватније због својих академских корена и строге математичке терминологије. Ово се последњих година полако мења са појавом модерних функционалних језика као што су Scala и Clojure (који могу да се користе на Java платформи), F# (.НЕТ платформа) итд.

Swift је нови програмски језик развијен у компанији Apple. Развој Swift-a је започет 2010. године, а прва верзија је објављена у јуну 2014. године. Дугорочни циљ његових аутора је да замене времешни Objective-C jezik за развој iOS и OS X апликација. Наколико особина Swift језика, као што су функције првог реда, софистицирани систем типизације, ламбда изрази, коришћење Kаријевих функција и парцијална апликација, алгебарски типови података итд, чине језик посебно погодним за писање функционалних програма. У овом раду су анализиране предности и мане примене фунционалних својстава Swift језика за развој iOS и OS X апликација.

Поменута својства су упоређена са еквивалентним својствима програмских језика Haskell и F#. У ради је показано да се Swift, у пракси користи за писање краћих, елегантнијих и сигурнијих програма, који су лакши за одржавање, надградњу и тестирање. Међутим, такође се показује да функционални стил у појединим случајевима доводи до смањених перформанси у односу на еквивалентни императивни кôд, те се о томе мора водити рачуна. Често постоји више начина да се одговарајућа функционална апстракција имплементира (нпр. коришћењем оператора, глобалних функција или метода). У раду су анализирани, различити могући приступи ради одабира оних који су природнији за Swift језик са техничке и практичне стране.

Аутор: Ивица Миловановић

Ментор: проф. др Душан Тошић 

Овде можете прочитати рад у целости

 

3618-funkcionalno-programiranje-u-swift-jeziku