Lär dig funktionell programmering: Den här typen av kodning kommer att blåsa ditt sinne

Avslöjande: Ditt stöd hjälper till att hålla webbplatsen igång! Vi tjänar en remissavgift för några av de tjänster vi rekommenderar på denna sida.


Medan de flesta programmeringsspråk består av ingångar, utgångar och externa variabler som kan ställas in eller användas inifrån dess funktioner, undviker funktionell programmering detta.

Tanken bakom funktionell programmering är att varje gång en funktion anropas med samma parametrar ska den returnera samma värde.

Vad gör funktionell programmering “funktionell”?

Tänk på en funktion som returnerar den aktuella temperaturen. Det passeras endast en variabel som indikerar om temperaturen ska returneras i grader Celsius eller Fahrenheit.

Funktionen använder sedan intern logik för att returnera den aktuella temperaturen – kanske genom att läsa en temperatursensor. Detta anses inte vara funktionell programmering eftersom varje gång funktionen används har den potential att returnera ett annat värde, även om funktionsingångarna är desamma.

Funktionsparametrar

Funktionella programmeringsspråk har förstklassiga funktioner. Detta innebär att funktionen kan användas som om det vore det värde som den returnerar.

Tänk till exempel på funktionen, dubbel (x), som returnerar dubbelt värdet för dess ingångsparameter. Så dubbel (2) skulle återgå 4. Med tanke på att det är en första klassens funktion, skulle koden, dubbel (dubbel (2)) vara samma som koden, dubbel (4).

Som med exemplet tillåter detta att häcka en funktion som en parameter för en annan och så vidare.

Funktionella programmeringsspråk tillåter också funktioner att ta funktioner som godkända variabler. Observera att detta innebär att själva funktionen passeras, snarare än bara resultat av funktionen.

Vanliga användningsområden

Funktionell programmering utmärker sig vid implementering av komplex matematisk modellering; av detta skäl har en av de viktigaste användningarna av funktionella språk traditionellt varit akademisk.

Många funktionella språk utmärker sig också när man implementerar parallellbehandling. Detta beror på deras förmåga att dra fördel av rena funktioner som alltid returnerar samma värde oavsett vilken ordning de körs.

Andra språk behöver oroa sig för rasförhållanden – där en funktion körs innan den variabel som den använder är inställd på det förväntade värdet.

Funktionell metod

Många programmeringsspråk som inte är funktionella kan användas med funktionell programmeringsmetodik.

Denna utvecklingsmetod kan ge de flesta fördelarna med nödvändig programmering och funktionell programmering. Några av de fördelar du tenderar att förlora är de inbyggda förmågorna att hjälpa till att upprätthålla renheten och lämna utvecklaren med det ansvaret.

Vissa språk är faktiskt utformade med en hybrid av metodologier tillsammans med funktionell programmering som tar bort några eller alla dessa nackdelar.

Historia

Lambda Calculus är utan tvekan det första datorspråket, och det är ett funktionellt språk. Det utvecklades först av Alonzo Church.

Intressant nog skapades detta språk först på 1930-talet – långt innan programmerbara datorer fanns. 1958 skapade John McCarthy, professor vid Massachusetts Institute of Technology (MIT), LISP, som modellerades efter lambda-kalkylen och är ett av de viktigaste funktionella språken.

Det finns fortfarande många versioner av LISP som används idag – vissa mer funktionella än andra.

Språk som stöder funktionell programmering

  • D designades efter C ++ för att få alla fördelar och samtidigt ta bort de upplevda svagheterna med att vara bakåtkompatibla med C.

  • Elixir härleddes och sitter ovanpå Erlang med sin förmåga att skapa h

    ighly
    samtidiga applikationer och samtidigt göra språket lättare att skriva och underhålla.

  • Erlang är mycket skalbar och samtidigt vilket gör den idealisk för telekommunikation och andra applikationer som tar emot enorma mängder data i en oförutsägbar ordning.

  • F # är ett öppen källkods multi-paradigmaspråk som ofta används inom

    .NETTO
    ramverk. Det används ofta för snabb utveckling av analytisk mjukvara.

  • Haskell är ett rent funktionellt språk som använder Lambda Calculus.

  • ML används i matematiska, vetenskapliga, ekonomiska, analytiska och andra typer av applikationer. En av dess styrkor är att skapa programvara för att manipulera andra program.

  • OCaml eller Objektiv Caml, är ett gratis, öppet källspråk som baserades på Caml. Det tenderar att skapa mycket lätta program som hjälper dem att ladda och köra snabbare än de som skapats på andra språk.

  • Scala designades för att enkelt kunna integreras i Java och andra objektorienterade språk. Scala drar nytta av funktionell programmering, så att den kan användas i distribuerade och samtidiga applikationer.

  • Schema baserades på syntaxen för LISP och strukturen för ALGOL. På grund av dess enkelhet används Scheme som en introduktion till programdesign i många datavetenskapskurser för att visa några av datorprogrammeringsgrunderna.

  • Swift designades med målet att vara feltolerant, snabb att utvecklas och uttrycksfullt.

Resurser

Funktionella programmeringsresurser är vanligtvis fokuserade på ett visst språk, som Scala. Men även när de är det, ger de värdefull information. Så var inte blyg bara för att en artikel eller bok använder ett språk som du inte använder.

Handledningar

  • En praktisk introduktion till funktionell programmering: Mary Rose Cooks diskussion om att använda funktionella programmeringstekniker med nödvändiga språk.

  • Funktionell programmering Grunder: en bra teoretisk diskussion om funktionell programmering.

  • Var inte rädd för funktionell programmering: är funktionell programmering “mustachioed hipster of programmering paradigms”? Ta reda på det här.

  • Introduktion till funktionell programmering i Swift: en detaljerad introduktion till funktionell programmering med Swift.

  • Varför är alla funktionella programmeringsstudier så Mathy? – en diskussion om Stack Exchange som är värt att läsa.

Böcker

  • En introduktion till funktionell programmering genom Lambda Calculus (2011) av Greg Michaelson: en introduktion som börjar redan från början.

  • Functional Thinking: Paradigm Over Syntax (2014) av Neal Ford: en avancerad bok om grundläggande funktionsprogrammering.

  • The Magical World of Functional Programming: Part I: Thinking Functional (2014) av K Anand Kumar: en kort ebok om grunderna i funktionell programmering.

  • Becoming Functional (2014) av Joshua Backfield: en introduktion till funktionell programmering för personer som är bekanta med imperativ och objektorienterad programmering.

Sammanfattning

Även om funktionell programmering är mycket bra för vissa applikationer, tycker många programmerare att det är nödvändigt med språk som är nödvändiga, mycket lättare att svepa på huvudet.

Men för matematisk och mer formell kodning är funktionell programmering ett bra val. Och att förstå principerna för funktionell programmering kan vara till stor nytta för alla programmerare.

Ytterligare läsning och resurser

Vi har fler guider, självstudier och infografik relaterade till kodning och utveckling:

  • F # -programmering: ta reda på om funktionell programmering i .NET-ramverket.

  • Erlang-programmering Introduktion och resurser: ett tidigt funktionsspråk som används för att skapa parallell kod.

  • Snabb introduktion och resurser: detta är ett av de nyaste C-liknande språken. Framtiden för programmering? Ta reda på det här!

Vilken kod ska du lära dig?

Förvirrad om vilket programmeringsspråk du ska lära dig att koda på? Kolla in vår infographic, vilken kod ska du lära dig?

Det diskuterar inte bara olika aspekter av språken, det svarar på viktiga frågor som “Hur mycket pengar ska jag tjäna på att programmera Java för att leva?”

Vilken kod ska du lära dig?
Vilken kod ska du lära dig?

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map