3,755 matches
-
Programarea funcțională este o paradigmă de programare care tratează calculul ca evaluare de funcții matematice și evită starea și datele muabile. Se pune accent pe aplicarea de funcții, spre deosebire de programarea imperativă, care folosește în principal de schimbările de stare. Modelul matematic al programării funcționale îl reprezintă calculul lambda. Limbajele funcționale moderne pot fi considerate extensii ale calculului lambda. Noțiunea de bază în această paradigmă este cea de "funcțională" sau "funcție de nivel
Programare funcțională () [Corola-website/Science/308128_a_309457]
-
scăzut, codul poate fi folosit drept date, și astfel IPL poate fi privit ca un limbaj capabil să lucreze pe funcții de nivel înalt. Totuși, el se bazează mult pe modificare structurii listelor și pe alte caracteristici similare ale programării imperative. Kenneth E. Iverson a dezvoltat limbajul de programare APL la începutul anilor 1960, și l-a descris în cartea sa "A Programming Language" (ISBN 978-0-471-43014-8, publicată în 1962). APL a fost sursa de inspirație a lui John Backus când a
Programare funcțională () [Corola-website/Science/308128_a_309457]
-
o licenta tip BSD. Odată cu apariția unor cărti cum este Real World Haskell el a intrat definitiv în practica producției profesionale de software. Există o serie de concepte și paradigme specifice programării funcționale, și care în general sunt străine programării imperative (inclusiv programării orientate obiect). Totuși, limbajele de programare sunt adesea hibrizi ale mai multor paradigme de programare, iar programatorii care utilizează limbaje "predominant imperative" ajung să utilizeze și unele dintre aceste concepte. Funcțiile sunt numite "de nivel înalt", sau "funcționale
Programare funcțională () [Corola-website/Science/308128_a_309457]
-
o serie de concepte și paradigme specifice programării funcționale, și care în general sunt străine programării imperative (inclusiv programării orientate obiect). Totuși, limbajele de programare sunt adesea hibrizi ale mai multor paradigme de programare, iar programatorii care utilizează limbaje "predominant imperative" ajung să utilizeze și unele dintre aceste concepte. Funcțiile sunt numite "de nivel înalt", sau "funcționale" dacă pot primi ca argument alte funcții, și dacă pot returna ca valoare alte funcții. (astfel de exemple sunt derivata și primitiva din analiza
Programare funcțională () [Corola-website/Science/308128_a_309457]
-
memorie sau efecte laterale, dacă nu se ia în considerare calcularea rezultatului ca efect lateral. Aceasta înseamnă că funcțiile pure au câteva proprietăți utile, dintre care multe pot fi folosite pentru optimizarea codului: Deși multe compilatoare pentru limbaje de programare imperative detectează funcțiile pure, și efectuează eliminarea de subexpresii comune la apelul funcțiilor pure, ele nu pot să facă acest lucru întotdeauna pentru bibliotecile precompilate, care în general nu expun această informație, împiedicând astfel optimizările ce implică aceste funcții externe. Unele
Programare funcțională () [Corola-website/Science/308128_a_309457]
-
recursive se autoapelează, permițând efectuarea unei operații în mod repetat. Recursivitatea poate necesita reținerea unei stive, dar tail recursion poate fi recunoscută și optimizată de compilator prin transformarea ei într-un cod similar cu cel utilizat pentru iterații în limbajele imperative. Standardul limbajului Scheme necesită recunoașterea de către implementări și optimizarea tail recursion. Șabloanele de recursivitate des întâlnite pot fi luate în considerare prin utilizarea de funcții de ordin superior, catamorfismele și anamorfismele fiind cele mai evidente exemple. Asemenea funcții de nivel
Programare funcțională () [Corola-website/Science/308128_a_309457]
-
fi luate în considerare prin utilizarea de funcții de ordin superior, catamorfismele și anamorfismele fiind cele mai evidente exemple. Asemenea funcții de nivel înalt joacă un rol analog celui jucat de structurile de control cum ar fi buclele în limbajele imperative. Limbajele funcționale pot fi clasificate după utilizarea evaluării stricte sau non-stricte, concepte ce se referă la modul în care sunt prelucrate argumentele unei funcții la evaluarea expresiei. Pe scurt, evaluarea strictă evaluează mereu complet argumentele funcțiilor înainte de invocarea funcției. Evaluarea
Programare funcțională () [Corola-website/Science/308128_a_309457]
-
funcția codice 21 cu ajutorul pointerilor. Unele limbaje declarative specifice unor domenii, cum sunt SQL sau Lex/Yacc , deși nu sunt mereu Turing-complete, folosesc unele elemente de programare funcțională, mai ales prin evitarea valorilor muabile. Programarea funcțională este foarte diferită de programarea imperativă. Cele mai semnificative diferențe provin din faptul că programarea funcțională evită efectele laterale, care sunt utilizate în programarea imperativă pentru implementarea stării și intrărilor și ieșirilor. Programarea funcțională pură interzice efectele laterale, ceea ce îi aduce transparența referențială, care face mai
Programare funcțională () [Corola-website/Science/308128_a_309457]
-
mereu Turing-complete, folosesc unele elemente de programare funcțională, mai ales prin evitarea valorilor muabile. Programarea funcțională este foarte diferită de programarea imperativă. Cele mai semnificative diferențe provin din faptul că programarea funcțională evită efectele laterale, care sunt utilizate în programarea imperativă pentru implementarea stării și intrărilor și ieșirilor. Programarea funcțională pură interzice efectele laterale, ceea ce îi aduce transparența referențială, care face mai ușor de verificat, optimizat, și paralelizat programele, și mai ușor de scris unelte automate de efectuare a acestor taskuri
Programare funcțională () [Corola-website/Science/308128_a_309457]
-
ieșirilor. Programarea funcțională pură interzice efectele laterale, ceea ce îi aduce transparența referențială, care face mai ușor de verificat, optimizat, și paralelizat programele, și mai ușor de scris unelte automate de efectuare a acestor taskuri. Functionalele sunt rareori folosite în programarea imperativă. Acolo unde un program imperativ ar utiliza o buclă pentru parcurgerea unei liste, un stil funcțional folosește adesea o funcțională, map, care primește ca argumente o funcție și o listă, aplicând funcția pe fiecare element al listei, returnând o listă
Programare funcțională () [Corola-website/Science/308128_a_309457]
-
efectele laterale, ceea ce îi aduce transparența referențială, care face mai ușor de verificat, optimizat, și paralelizat programele, și mai ușor de scris unelte automate de efectuare a acestor taskuri. Functionalele sunt rareori folosite în programarea imperativă. Acolo unde un program imperativ ar utiliza o buclă pentru parcurgerea unei liste, un stil funcțional folosește adesea o funcțională, map, care primește ca argumente o funcție și o listă, aplicând funcția pe fiecare element al listei, returnând o listă cu rezultatele. Există taskuri pentru
Programare funcțională () [Corola-website/Science/308128_a_309457]
-
alt mod. Limbajul funcțional pur Haskell le implementează utilizând monadele, un concept provenit din teoria categoriilor. Monadele sunt puternice și oferă o metodă intuitivă de modelare a stării (și alte efecte lateral cum ar fi I/ E) într-o manieră imperativă fără a pierde puritatea. În timp ce monadele existente sunt ușor de utilizat, mulți găsesc dificil de înțeles modul de definire a unor noi monade (ceea ce este necesar uneori pentru unele tipuri de biblioteci). Limbajele funcționale au devenit mai eficiente de-a
Programare funcțională () [Corola-website/Science/308128_a_309457]
-
pe baze de date multidimensionale, au fost proiectate limbajele funcționale vectoriale (ca J și K), cu atenție sporită pentru optimizări. Limbajele de programare funcțională au fost percepute ca fiind mai puțin eficiente în utilizarea procesorului și a memoriei decât cele imperative. Totuși, imuabilitatea datelor poate, în multe cazuri, să conducă la eficiență a execuției, deoarece permite compilatorului să facă presupuneri care nu pot fi făcute cu certitudine într-un limbaj imperativ. Cea mai gravă pierdere de performanță este exponențială. Situații în
Programare funcțională () [Corola-website/Science/308128_a_309457]
-
puțin eficiente în utilizarea procesorului și a memoriei decât cele imperative. Totuși, imuabilitatea datelor poate, în multe cazuri, să conducă la eficiență a execuției, deoarece permite compilatorului să facă presupuneri care nu pot fi făcute cu certitudine într-un limbaj imperativ. Cea mai gravă pierdere de performanță este exponențială. Situații în care asemenea pierderi de performanță apar foarte rar în practică. Programele imperative tind să pună accent pe seria de pași efectuați de un program în executarea unei acțiuni, iar cele
Programare funcțională () [Corola-website/Science/308128_a_309457]
-
a execuției, deoarece permite compilatorului să facă presupuneri care nu pot fi făcute cu certitudine într-un limbaj imperativ. Cea mai gravă pierdere de performanță este exponențială. Situații în care asemenea pierderi de performanță apar foarte rar în practică. Programele imperative tind să pună accent pe seria de pași efectuați de un program în executarea unei acțiuni, iar cele funcționale tind să pună accent pe compoziția și aranjamentul funcțiilor, adesea fără a specifica explicit pașii. Un exemplu simplu de două soluții
Programare funcțională () [Corola-website/Science/308128_a_309457]
-
pună accent pe compoziția și aranjamentul funcțiilor, adesea fără a specifica explicit pașii. Un exemplu simplu de două soluții ale aceluiași scop (utilizând același limbaj multiparadigmă Python) ilustrează acest aspect. Versiunea funcțională are un cu totul alt aspect: Spre deosebire de stilul imperativ care descrie pașii implicați în compunerea lui codice 22, stilul funcțional descrie relația matematică dintre codice 23 și codice 22.
Programare funcțională () [Corola-website/Science/308128_a_309457]
-
a acțiunii sau a stării exprimate de verbul respectiv. El este asociat cu alte categorii ale verbului, ca timpul și aspectul. În limba română există cinci moduri personale. Aceste moduri personale au rol numai de predicat. Indicativ Condițional-optativ Imperativ. Modul imperativ este un mod personal (predicativ) care exprimă o poruncă (imperativ își are originea în latinescul „imperare”, care înseamnă a porunci), un îndemn, o rugăminte sau un sfat: Conjunctiv Prezumtiv Formele verbale nepredicative/nepersonale sînt uneori considerate moduri împreună cu cele personale
Verb () [Corola-website/Science/299529_a_300858]
-
dezvoltatorilor să exprime unele idei programatice într-o manieră mai clară și mai concisă decât în alte limbaje de programare ca C. În ceea ce privește paradigma de programare, Python poate servi ca limbaj pentru software de tipul "object-oriented", dar permite și programarea imperativă, funcțională sau procedurală. Sistemul de tipizare este dinamic iar administrarea memoriei decurge automat prin intermediul unui serviciu „gunoier” ("garbage collector"). Alt avantaj al limbajului este existența unei ample biblioteci standard de metode. Implementarea de referință a Python este scrisă în "C
Python () [Corola-website/Science/303538_a_304867]
-
Dicționarele sunt liste neordonate în care fiecare element are asociat o cheie, care poate fi număr sau șir de caractere. Dicționarele au foarte multe aplicații, inclusiv crearea structurilor de tip "hash-tables". Python este un limbaj multi-paradigmă, concentrându-se asupra programării imperative, orientate pe obiecte și funcționale, ceea ce permite o flexibilitate mai mare în scrierea aplicațiilor. Din punctul de vedere al sintaxei, Python are un număr de contrucții și cuvinte cheie cunoscute oricărui programator, dar prezintă și un concept unic: nivelul de
Python () [Corola-website/Science/303538_a_304867]
-
trecut de Yukihiro "Matz" Matsumoto în Japonia. Combină elemente inspirate din Perl (sintaxa) cu caracteristici din Smalltalk, dar a fost influențat și de alte limbaje precum Eiffel și Lisp. Oferă suport pentru multiple paradigme de programare (funcțională, orientată pe obiecte, imperativă), gestiune automată a memoriei, sistem dinamic pentru tipurile de date; e similar - în grade diferite - cu Smalltalk, Python, Perl, Lisp, Dylan și CLU. Este un limbaj orientat pe obiecte: fiecare tip de date este un obiect, inclusive clasele și tipurile
Ruby () [Corola-website/Science/303539_a_304868]
-
limbaj de o aleasă balanță. Creatorul său, Yukihiro “matz” Matsumoto, a contopit părți din limbajele sale favorite (Perl, Smalltalk, Eiffel, Ada, și Lisp) pentru a forma un nou limbaj care să creeze o balanță armonioasă între programarea funcțională și cea imperativă. El a spus adeseori că "“încearcă sa facă limbajul Ruby natural, nu simplu,”" într-un mod care să oglindească viața.<br> <br> Încă de la lansarea sa publică în 1995, Ruby a atras programatori devotați din lumea întragă. În 2006, Ruby
Ruby () [Corola-website/Science/303539_a_304868]
-
flexibilitate. Un programator poate atașa o încapsulare (closure) unei metode, descriind astfel cum ar trebui să se comporte aceasta. Încapsularea este denumită "block" și a devenit una din însușirile cele mai populare pentru noii veniți în Ruby dinspre alte limbaje imperative precum PHP sau Visual Basic. Blocurile sunt inspirate de către limbajele funcționale. Matz a spus, "“în încapsulările Ruby, am vrut să respect cultul Lisp.”"<br> search engines = În codul de mai sus, blocul este descris în interiorul construcției do, end. Metoda map aplică
Ruby () [Corola-website/Science/303539_a_304868]
-
al art.3 alin.(5) din acel Regulament. 3. De obicei notificațiile la care se face referire în paragrafele anterioare ale acestui art. vor fi comunicate electronic în rețeaua integrată stabilită pentru acest scop, dacă nu din anumite motive tehnice imperative este necesar să se folosească temporar alte mijloace de comunicare. 4.Pe cât este posibil, Comisia va confirma autorităților cantitatea totală indicată în cererile anunțate pentru fiecare categorie de produse și pentru fiecare din țările interesate din lumea a treia. Înștiințările
by Guvernul Romaniei () [Corola-other/Law/89394_a_90181]
-
al art. 3 alin. (4) din prezentul regulament 3. În mod normal, notificările la care se fac referiri în alineatele anterioare al prezentului articol sunt comunicate electronic în cadrul rețelei integrate montate în acest scop, dacă nu cumva, din cauze tehnice imperative, este necesar a se folosi alte mijloace temporare de comunicare. 4. Pe cât posibil, Comisia confirmă autorităților cantitatea întreagă indicată în cererile notificate pentru fiecare categorie de produse și pentru fiecare țară implicată. Notificările prezentate de statele membre pentru care nu
by Guvernul Romaniei () [Corola-other/Law/88337_a_89124]
-
pe standardele vechi; Shen a descris arme vechi, cum ar fi utilizarea unui dispozitiv de ochire scalat, pe arbalete; în timp ce experimenta măsurile muzicale antice, Shen a sugerat agățarea unui clopot vechi prin utilizarea unui mâner gol în interior. În ciuda interesului imperativ al nobilimii în arheologie, pur și simplu pentru revigorarea ritualuri de stat vechi, unii dintre colegii lui Shen au avut o abordare similară în studiul arheologic. Contemporanul său, Ouyang Xiu (1007-1072) a compilat un catalog analitic cu milaje după antichități
Dinastia Song () [Corola-website/Science/303944_a_305273]