Azərbaycan  AzərbaycanDeutschland  DeutschlandLietuva  Lietuvaශ්‍රී ලංකාව  ශ්‍රී ලංකාවTürkiyə  Türkiyə
Pagalba
www.datawiki.lt-lt.nina.az
  • Pradžia

Šiam straipsniui ar jo daliai trūksta išnašų į patikimus šaltinius Jūs galite padėti Vikipedijai pridėdami tinkamas išna

Funkcinis programavimas

  • Pagrindinis puslapis
  • Funkcinis programavimas
Funkcinis programavimas
www.datawiki.lt-lt.nina.azhttps://www.datawiki.lt-lt.nina.az
   Šiam straipsniui ar jo daliai trūksta išnašų į patikimus šaltinius.
Jūs galite padėti Vikipedijai pridėdami tinkamas išnašas su šaltiniais.

Funkcinis programavimas – tai programavimo paradigma, kai programos konstruojamos taikant ir sudarant funkcijas. Tai deklaratyvi programavimo paradigma, kurioje funkcijų apibrėžimai yra išraiškų medžiai, susiejantys reikšmes su kitomis reikšmėmis, o ne imperatyvių teiginių, atnaujinančių programos veikimo būseną, seka.

Funkcinį programavimą realizuojančios kalbos: Lisp, Elixir, , ir kt.

Istorija

Lambda skaičiavimas, kurį XX amžiaus trečiajame dešimtmetyje sukūrė Alonzo Church, yra formali skaičiavimo sistema, sukurta naudojant funkcijų programą. 1937 m. Alan Turing įrodė, kad lambda skaičiavimas ir Tiuringo mašinos yra lygiaverčiai skaičiavimo modeliai, parodydami, kad lambda skaičiavimas yra baigtas Tiuringo skaičiavimu. Lambda skaičiavimas yra visų funkcinių programavimo kalbų pagrindas. Lygiavertę teorinę formuluotę, kombinatorinę logiką sukūrė Moses Schönfinkel ir Haskell Curry 1920 ir 1930 metais.

Palyginimas su imperatyviuoju programavimu

Funkcinis programavimas labai skiriasi nuo imperatyviojo. Pagrindinis skirtumas gali buti įvardijamas tuo, kad funkcinis programavimas neturi šalutinių poveikių (eng. side effects), kurie naudojami imperatyviajame programavime, norint realizuoti aplikacijos buseną (eng. state) ir įvesties/išvesties metodus. Funkcinis programavimas apsaugo nuo šalutinių poveikių ir užtikrina saugumą.

Senesnės funkcines programavimo kalbos retai naudoja aukštesnės eilės (eng. higher-order) funkcijas. Tradicinė imperatyvi programa gali naudoti ciklą, tam kad pereiti/modifikuoti sąrašus. Tačiau funkcinė programavimo kalba greičiausiai naudotųsi aukštesnės eilės funkcijas, kurios paima funkciją ir sąrašą, generuoja bei grąžina naują sąrašą, pritaikydamos šią funkcija kiekvienam sąrašo elementui.

Kodo palyginimas

Šie du pavyzdžiai, parašyti Javascript programavimo kalba, sprendžia tą pačią problemą - padaugina visus lyginius skaičius masyve (eng. array) iš 10, ir sudeda juos į vieną sumą, pavadinta `rezultatu`.

Tradicinis imperatyvus ciklas:

const sarasas = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]; let rezultatas = 0; for (let i = 0; i < sarasas.length; i++) {   if (sarasas[i] % 2 === 0) {     rezultatas += sarasas[i] * 10;   } } 

Funkcinis programavimas, su aukštesnės eilės (higher-order) funkcijomis.

const rezultatas = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]   .filter(n => n % 2 === 0)   .map(a => a * 10)   .reduce((a, b) => a + b, 0); 

Kartais šios abstrakcijos (eng. abstractions) siųlomos funkcinio programavimo padaro koda skaitomesnį, bei palieka mažiau vietos klaidoms, nei rašant imperatyviuoju būdu.

Autorius: www.NiNa.Az

Išleidimo data: 17 Lie, 2025 / 05:03

vikipedija, wiki, lietuvos, knyga, knygos, biblioteka, straipsnis, skaityti, atsisiųsti, nemokamai atsisiųsti, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, pictu, mobilusis, porn, telefonas, android, iOS, apple, mobile telefl, samsung, iPhone, xiomi, xiaomi, redmi, pornografija, honor, oppo, Nokia, Sonya, mi, pc, web, kompiuteris, Informacija apie Funkcinis programavimas, Kas yra Funkcinis programavimas? Ką reiškia Funkcinis programavimas?

Siam straipsniui ar jo daliai truksta isnasu į patikimus saltinius Jus galite padeti Vikipedijai pridedami tinkamas isnasas su saltiniais Funkcinis programavimas tai programavimo paradigma kai programos konstruojamos taikant ir sudarant funkcijas Tai deklaratyvi programavimo paradigma kurioje funkciju apibrezimai yra israisku medziai susiejantys reiksmes su kitomis reiksmemis o ne imperatyviu teiginiu atnaujinanciu programos veikimo busena seka Funkcinį programavima realizuojancios kalbos Lisp Elixir ir kt IstorijaLambda skaiciavimas kurį XX amziaus treciajame desimtmetyje sukure Alonzo Church yra formali skaiciavimo sistema sukurta naudojant funkciju programa 1937 m Alan Turing įrode kad lambda skaiciavimas ir Tiuringo masinos yra lygiaverciai skaiciavimo modeliai parodydami kad lambda skaiciavimas yra baigtas Tiuringo skaiciavimu Lambda skaiciavimas yra visu funkciniu programavimo kalbu pagrindas Lygiaverte teorine formuluote kombinatorine logika sukure Moses Schonfinkel ir Haskell Curry 1920 ir 1930 metais Palyginimas su imperatyviuoju programavimuFunkcinis programavimas labai skiriasi nuo imperatyviojo Pagrindinis skirtumas gali buti įvardijamas tuo kad funkcinis programavimas neturi salutiniu poveikiu eng side effects kurie naudojami imperatyviajame programavime norint realizuoti aplikacijos busena eng state ir įvesties isvesties metodus Funkcinis programavimas apsaugo nuo salutiniu poveikiu ir uztikrina sauguma Senesnes funkcines programavimo kalbos retai naudoja aukstesnes eiles eng higher order funkcijas Tradicine imperatyvi programa gali naudoti cikla tam kad pereiti modifikuoti sarasus Taciau funkcine programavimo kalba greiciausiai naudotusi aukstesnes eiles funkcijas kurios paima funkcija ir sarasa generuoja bei grazina nauja sarasa pritaikydamos sia funkcija kiekvienam saraso elementui Kodo palyginimasSie du pavyzdziai parasyti Javascript programavimo kalba sprendzia ta pacia problema padaugina visus lyginius skaicius masyve eng array is 10 ir sudeda juos į viena suma pavadinta rezultatu Tradicinis imperatyvus ciklas const sarasas 1 2 3 4 5 6 7 8 9 10 let rezultatas 0 for let i 0 i lt sarasas length i if sarasas i 2 0 rezultatas sarasas i 10 Funkcinis programavimas su aukstesnes eiles higher order funkcijomis const rezultatas 1 2 3 4 5 6 7 8 9 10 filter n gt n 2 0 map a gt a 10 reduce a b gt a b 0 Kartais sios abstrakcijos eng abstractions siulomos funkcinio programavimo padaro koda skaitomesnį bei palieka maziau vietos klaidoms nei rasant imperatyviuoju budu

Naujausi straipsniai
  • Rugpjūtis 31, 2025

    Tamsiosios raguotės

  • Rugsėjis 02, 2025

    Tamsiosios čiuopiklinės kandys

  • Rugpjūtis 17, 2025

    Tamošiūnai

  • Rugpjūtis 16, 2025

    Tailandinė šorėja

  • Rugpjūtis 15, 2025

    Tafi Vjechas

www.NiNa.Az - Studija

    Susisiekite
    Kalbos
    Susisiekite su mumis
    DMCA Sitemap
    © 2019 nina.az - Visos teisės saugomos.
    Autorių teisės: Dadash Mammadov
    Nemokama svetainė, kurioje galima dalytis duomenimis ir failais iš viso pasaulio.
    Viršuje