Hoppa till innehållet

Funktionell programmering

Från Wikipedia

Funktionell programmering är en form av programmering inom vilken program konstrueras genom komposition av matematiska funktioner, och exekvering innebär att funktionerna utvärderas.[1] Detta kan kontrasteras med procedurell och imperativ programmering, där datorn instrueras att utföra instruktioner sekventiellt. Det finns ett flera funktionella programspråk.

Funktionell programmering har sitt ursprung i Lambdakalkylen, som utvecklades på 1930-talet av Alonzo Church. Det äldsta funktionella språket är Lisp,[2] vilket utvecklades på 1960-talet och näst Fortran är det äldsta programspråket som fortfarande används i större utsträckning. Det finns flera varianter av Lisp, däribland Common Lisp, Logo, Scheme, Dylan och Clojure. Till de moderna funktionella språken hör Haskell, ML (samt versioner av detta), Erlang, Clean, Miranda och F#.

  • Funktionella språk kan vara ineffektiva jämfört med imperativa språk, framför allt vid användning av komplicerade datastrukturer.
  • Funktionella program använder tekniker som många programmerare finner svåra att förstå och tillämpa, som rekursion, funktioner av högre ordning och polymorfism.
  • In- och utmatning (till exempel text, grafik och styrning av hårdvara) kan bli problematiskt i funktionella språk.
  • Stora lösningar blir svåra att överblicka och underhålla jämfört med objektorienterade språk.
  1. ^ [a b] Hudak, Paul (1989-09). ”Conception, evolution, and application of functional programming languages” (på engelska). ACM Computing Surveys 21 (3): sid. 359–411. doi:10.1145/72551.72554. ISSN 0360-0300. https://dl.acm.org/doi/10.1145/72551.72554. Läst 27 mars 2024. 
  2. ^ McCarthy, John (1978) (på engelska). History of LISP. ACM Press. sid. 217–223. doi:10.1145/800025.808387. http://portal.acm.org/citation.cfm?doid=800025.808387. Läst 27 mars 2024.