This HTML5 document contains 307 embedded RDF statements represented using HTML+Microdata notation.

The embedded RDF content will be recognized by any processor of HTML5 Microdata.

PrefixNamespace IRI
rdfhttp://www.w3.org/1999/02/22-rdf-syntax-ns#
n60http://www.htdp.
n97http://dbpedia.org/resource/Codata_(computer_science)
dbpedia-jahttp://ja.dbpedia.org/resource/
n39http://dbpedia.org/resource/Filter_(higher-order_function)
n56http://dbpedia.org/resource/Haskell_(programming_language)
dbphttp://dbpedia.org/property/
n91http://dbpedia.org/resource/Clean_(programming_language)
dbpedia-nlhttp://nl.dbpedia.org/resource/
n90http://dbpedia.org/resource/Julia_(programming_language)
n31http://purl.org/voc/vrank#
n4http://dbpedia.org/resource/K_(programming_language)
n94http://dbpedia.org/resource/Side_effect_(computer_science)
dbpedia-plhttp://pl.dbpedia.org/resource/
n38http://hop.perl.plover.com/book/pdf/HigherOrderPerl.
n10http://dbpedia.org/resource/Deforestation_(computer_science)
n57http://purl.org/linguistics/gold/
dbohttp://dbpedia.org/ontology/
n20http://dbpedia.org/resource/Lex_(software)
dbpedia-elhttp://el.dbpedia.org/resource/
n74http://dbpedia.org/resource/J_(programming_language)
foafhttp://xmlns.com/foaf/0.1/
dbchttp://dbpedia.org/resource/Category:
dbpedia-pthttp://pt.dbpedia.org/resource/
n36http://dbpedia.org/resource/Racket_(programming_language)
dbpedia-dehttp://de.dbpedia.org/resource/
n82http://dbpedia.org/resource/SASL_(programming_language)
xsdhhttp://www.w3.org/2001/XMLSchema#
n12http://dbpedia.org/resource/F_Sharp_(programming_language)
dbpedia-kohttp://ko.dbpedia.org/resource/
n95http://dbpedia.org/resource/Map_(higher-order_function)
yago-reshttp://yago-knowledge.org/resource/
n63http://dbpedia.org/resource/Epigram_(programming_language)
n89http://dbpedia.org/resource/C++
n81http://dbpedia.org/resource/Scheme_(programming_language)
n40http://rdf.freebase.com/ns/m.
dbpedia-ithttp://it.dbpedia.org/resource/
n33http://dbpedia.org/resource/R_(programming_language)
n46http://dbpedia.org/resource/Arthur_Whitney_(computer_scientist)
dbpedia-idhttp://id.dbpedia.org/resource/
dbpedia-cshttp://cs.dbpedia.org/resource/
n69http://dbpedia.org/resource/Visitor_(design_pattern)
n71http://dbpedia.org/resource/Hope_(programming_language)
n72http://gnosis.cx/publish/programming/charming_python_16.
n14http://dbpedia.org/resource/Function_(mathematics)
dcthttp://purl.org/dc/terms/
n41http://dbpedia.org/resource/Lisp_(programming_language)
provhttp://www.w3.org/ns/prov#
dbpedia-frhttp://fr.dbpedia.org/resource/
n21http://dbpedia.org/resource/Fold_(higher-order_function)
wikidatahttp://www.wikidata.org/entity/
n49http://dbpedia.org/resource/ML_(programming_language)
n67http://dbpedia.org/resource/Kleene'
n84http://dbpedia.org/resource/Syntax_(programming_languages)
n25http://dbpedia.org/resource/Python_(programming_language)
n9http://dbpedia.org/resource/Closure_(computer_science)
n64http://dbpedia.org/resource/FP_(programming_language)
n18http://dbpedia.org/resource/David_Turner_(computer_scientist)
dbpedia-eshttp://es.dbpedia.org/resource/
n61http://dbpedia.org/resource/Matrix_(mathematics)
n93http://mitpress.mit.edu/sicp/
n86http://dbpedia.org/resource/NPL_(programming_language)
n26http://dbpedia.org/resource/Design_pattern_(computer_science)
n68http://dbpedia.org/resource/John_McCarthy_(computer_scientist)
n19http://dbpedia.org/resource/C_Sharp_(programming_language)
n66http://dbpedia.org/resource/Miranda_(programming_language)
dbrhttp://dbpedia.org/resource/
n34http://dbpedia.org/resource/Recursion_(computer_science)
n79http://dbpedia.org/resource/Cayenne_(programming_language)
n80http://d-nb.info/gnd/
rdfshttp://www.w3.org/2000/01/rdf-schema#
n45http://dbpedia.org/resource/Java_(programming_language)
n62http://dbpedia.org/resource/Scala_(programming_language)
n35http://dbpedia.org/resource/Lua_(programming_language)
n23http://dbpedia.org/resource/Kenneth_E.
dbpedia-wikidatahttp://wikidata.dbpedia.org/resource/
yagohttp://dbpedia.org/class/yago/
n48http://dbpedia.org/resource/D_(programming_language)
n22http://dbpedia.org/resource/Agda_(theorem_prover)
wikipedia-enhttp://en.wikipedia.org/wiki/
n87http://dbpedia.org/resource/Q_(programming_language_from_Kx_Systems)
owlhttp://www.w3.org/2002/07/owl#
n78http://dbpedia.org/resource/Referential_transparency_(computer_science)
n37http://book.realworldhaskell.org/read/
n99http://dbpedia.org/resource/Dylan_(programming_language)
n30http://gnosis.cx/publish/programming/charming_python_19.
n55http://www.ibm.com/developerworks/java/library/j-ft20/index.
n6http://dbpedia.org/resource/C_(programming_language)
n75http://dbpedia.org/resource/Expression_(computer_science)
n70http://dbpedia.org/resource/Relation_(logic)
n83http://dbpedia.org/resource/Statement_(computer_science)
n59http://en.wikipedia.org/wiki/Functional_programming?oldid=
n76http://www.defmacro.org/ramblings/fp.
n43http://dbpedia.org/resource/IBM_700/
n73http://gnosis.cx/publish/programming/charming_python_13.
n96http://dbpedia.org/resource/Map_(computer_science)
n24http://dbpedia.org/resource/APL_(programming_language)
n77http://dbpedia.org/resource/Monad_(functional_programming)
n29http://dbpedia.org/resource/Elixir_(programming_language)
n65http://dbpedia.org/resource/Pascal_(programming_language)
n7http://dbpedia.org/resource/Erlang_(programming_language)
Subject Item
dbr:Functional_programming
rdf:type
yago:GrammaticalRelation113796779 yago:Paradigm113804375 yago:Inflection113803782 owl:Thing yago:Relation100031921 yago:Language106282651 yago:LinguisticRelation113797142 yago:WikicatFunctionalLanguages yago:WikicatProgrammingParadigms yago:Abstraction100002137 yago:Communication100033020
rdfs:label
Funktionale Programmierung Функциональное программирование برمجة وظيفية Programación funcional Programmation fonctionnelle Programowanie funkcyjne Programação funcional Functional programming 関数型言語 Functioneel programmeren 函數程式語言 Programmazione funzionale
rdfs:comment
函數式編程(英语:functional programming)或称函数程序设计,又稱泛函編程,是一種編程典範,它將電腦運算視為數學上的函數計算,並且避免使用程序状态以及易变物件。函數程式語言最重要的基礎是λ演算(lambda calculus)。而且λ演算的函數可以接受函數當作輸入(引數)和輸出(傳出值)。 比起指令式編程,函數式編程更加強調程序执行的结果而非执行的过程,倡导利用若干简单的执行单元让计算结果不断渐进,逐层推导复杂的运算,而不是设计一个复杂的执行过程。 In informatica la programmazione funzionale è un paradigma di programmazione in cui il flusso di esecuzione del programma assume la forma di una serie di valutazioni di funzioni matematiche. Il punto di forza principale di questo paradigma è la mancanza di effetti collaterali (side-effect) delle funzioni, il che comporta una più facile verifica della correttezza e della mancanza di bug del programma e la possibilità di una maggiore ottimizzazione dello stesso. Un uso particolare del paradigma, per l'ottimizzazione dei programmi, è quello di trasformare gli stessi per utilizzarli nella programmazione parallela. En ciencias de la computación, la programación funcional es un paradigma de programación declarativa basado en el uso de funciones matemáticas, en contraste con la programación imperativa, que enfatiza los cambios de estado mediante la mutación de variables. La programación funcional tiene sus raíces en el cálculo lambda, un sistema formal desarrollado en los años 1930 para investigar la definición de función, la aplicación de las funciones y la recursión. Muchos lenguajes de programación funcionales pueden ser vistos como elaboraciones del cálculo lambda. Programowanie funkcyjne – filozofia i metodyka programowania będąca odmianą programowania deklaratywnego, w której funkcje należą do wartości podstawowych, a nacisk kładzie się na wartościowanie (często rekurencyjnych) funkcji, a nie na wykonywanie poleceń. W czystym programowaniu funkcyjnym, raz zdefiniowana funkcja zwraca zawsze tę samą wartość dla danych wartości argumentów, tak jak funkcje matematyczne. In de informatica is functioneel programmeren een programmeerstijl en een van de drie programmeerparadigma's. Hierbij wordt de informatieverwerking in de vorm van functies uitgedrukt, vergelijkbaar met wiskundige functies. Bij deze stijl dienen (liefst alle) wijzigingen van variabelen buiten de functie (de zogenaamde "neveneffecten") en het opslaan van programmatoestand en wijzigbare variabelen vermeden te worden. Variabelen met als bedoeling accumulator, teller, globale of controlevariabele zijn uit den boze.Voorbeelden van meer of minder zuivere programmeertalen voor functioneel programmeren zijn APL, Erlang, F♯, Haskell, Lisp, ML, Scala en Scheme, waarvan Haskell de puurste is. البرمجة الوظيفية هي البرمجة التي تتعامل مع الحسابات كحل الدوال الرياضية باتباع قواعد وقوانين رياضية. الهدف من البرمجة الوظيفية محاكاة طريقة حل الدوال الرياضية بأكبر درجة ممكنة.هذا الهدف هو ماجعل البرمجة الوظيفية تختلف تمامًا عن البرمجة باستخدام لغات الأوامر في طريقة تعاملها مع المشكلات وحلها. Em ciência da computação, programação funcional é um paradigma de programação que trata a computação como uma avaliação de funções matemáticas e que evita estados ou dados mutáveis. Ela enfatiza a aplicação de funções, em contraste da programação imperativa, que enfatiza mudanças no estado do programa. é definida em termos de funções de exponenciação e adição. Do mesmo modo, a linguagem deve oferecer funções básicas que não requerem definições adicionais. La programmation fonctionnelle est un paradigme de programmation qui considère le calcul en tant qu'évaluation de fonctions mathématiques. Comme le changement d'état et la mutation des données ne peuvent pas être représentés par des évaluations de fonctions la programmation fonctionnelle ne les admet pas, au contraire elle met en avant l'application des fonctions, contrairement au modèle de programmation impérative qui met en avant les changements d'état. Функциона́льное программи́рование — раздел дискретной математики и парадигма программирования, в которой процесс вычисления трактуется как вычисление значений функций в математическом понимании последних (в отличие от функций как подпрограмм в процедурном программировании). Лямбда-исчисление являются основой для функционального программирования, многие функциональные языки можно рассматривать как «надстройку» над ними. In computer science, functional programming is a programming paradigm—a style of building the structure and elements of computer programs—that treats computation as the evaluation of mathematical functions and avoids changing-state and mutable data. It is a declarative programming paradigm, which means programming is done with expressions or declarations instead of statements. In functional code, the output value of a function depends only on the arguments that are input to the function, so calling a function f twice with the same value for an argument x will produce the same result f(x) each time. Eliminating side effects, i.e. changes in state that do not depend on the function inputs, can make it much easier to understand and predict the behavior of a program, which is one of the key mo Funktionale Programmierung ist ein Programmierparadigma, bei dem Programme ausschließlich aus Funktionen bestehen. Dadurch wird bewusst auf die aus der imperativen Programmierung bekannten Nebenwirkungen verzichtet. Die funktionale Programmierung entspringt der akademischen Forschung. In den 1930er Jahren arbeiteten verschiedene Personen am Lambda-Kalkül. Hierbei geht es um Funktionen und deren Auswertung. Funktionale Sprachen sind Umsetzungen dieser Forschung. 関数型言語(かんすうがたげんご、英: functional language)は、以下に述べる関数型プログラミングを基本スタイルとして推奨する機能を持つプログラミング言語、関数型プログラミング言語の略称である。
owl:sameAs
dbpedia-nl:Functioneel_programmeren dbpedia-pt:Programação_funcional wikidata:Q193076 dbpedia-wikidata:Q193076 dbpedia-fr:Programmation_fonctionnelle n40:02ykw dbpedia-id:Pemrograman_Fungsional dbpedia-ko:함수형_프로그래밍 dbpedia-de:Funktionale_Programmierung dbpedia-pl:Programowanie_funkcyjne dbpedia-es:Programación_funcional n80:4198740-8 dbpedia-it:Programmazione_funzionale dbpedia-el:Συναρτησιακός_προγραμματισμός dbpedia-ja:関数型言語 dbpedia-cs:Funkcionální_programování yago-res:Functional_programming
dct:subject
dbc:Programming_paradigms dbc:Functional_programming
dbo:wikiPageID
10933
dbo:wikiPageRevisionID
744293332
dbo:wikiPageWikiLink
n4: dbr:Foundations_of_mathematics dbr:Constructive_proof dbr:XSLT dbr:Compiler dbr:XML dbr:Ericsson dbr:Binary_heap dbr:Robot dbr:Interactive_theorem_proving n6: dbr:Untyped_lambda_calculus n7: dbr:Wolfram_Language dbr:Tail_recursive dbr:OCaml dbr:Inconsistency n9: n10: dbr:Higher-order_function dbr:Graph_reduction dbr:Structure_and_Interpretation_of_Computer_Programs dbr:Computation dbr:Sweden n12: dbr:Operational_semantics dbr:PHP dbr:Equational_reasoning n14: dbr:WhatsApp dbc:Programming_paradigms dbr:Memory_leak dbr:Pure_function dbr:Yacc dbr:First-class_function dbr:Hindley–Milner_type_inference dbr:Computer_science dbr:Macmillan_Technical_Publishing dbr:Catamorphism n18: n19: dbr:Test-driven_development n20: n21: dbr:Programming_paradigm n22: dbr:Strategy_pattern dbr:Halting_problem n23:_Iverson n24: n25: dbr:Eager_evaluation n26: dbr:Parallelization dbr:Mutable_object dbr:Anamorphism dbr:Nix_package_manager dbr:Lambda_Papers dbr:Logic_programming dbr:Partial_application n29: dbr:Logarithm dbr:Thread-safe dbc:Functional_programming dbr:Strongly_normalizing dbr:SequenceL dbr:Successor_function dbr:Predicate_logic n33: dbr:Purely_functional_programming dbr:John_Backus dbr:Perl_6 dbr:Dependent_type n34: n35: dbr:Software_driver dbr:Category_theory dbr:Clojure n36: dbr:Separation_of_concerns dbr:Pointer_chasing dbr:False_positives_and_false_negatives n39: dbr:Effect_system dbr:Subroutine n41: dbr:Telescope n43:7000_series n45: dbr:Inline_expansion dbr:Mathematical_proof dbr:JavaScript n46: dbr:Differential_operator n48: n49: dbr:Intuitionistic_type_theory dbr:Information_Processing_Language dbr:Total_functional_programming dbr:Principle_of_compositionality dbr:University_of_St_Andrews dbr:Coq dbr:Von_Neumann_architecture dbr:Random_access_list dbr:Comparison_of_programming_paradigms dbr:Turing_Award dbr:Compcert dbr:Cambridge_University_Press dbr:Object-oriented dbr:Robin_Milner n56: dbr:Tail_recursion dbr:Central_processing_unit dbr:Object-oriented_programming dbr:Turing_complete dbr:Domain-specific_programming_language dbr:Type_inference dbr:Program_state dbr:Database n61: dbr:Natural_number dbr:Data_structure dbr:Denotational_semantics n62: dbr:University_of_Edinburgh n63: n64: dbr:Nortel dbr:Anonymous_class dbr:Imperative_programming dbr:Iteration n65: dbr:Morgan_Kaufmann dbr:Perl n66: n67:s_recursion_theorem dbr:Électricité_de_France dbr:State-passing_style dbr:Continuation_passing_style n68: dbr:Lambda_calculus dbr:Undecidable_problem n69: dbr:Apple_Macintosh dbr:Per_Martin-Löf dbr:Addison-Wesley_Longman_Limited n70: dbr:Array_programming n71: dbr:Array_data_structure dbr:Nested_function dbr:Fortran_95 dbr:Hash_table dbr:Facebook dbr:Type_system n74: dbr:Formalized_mathematics n75: dbr:Curry–Howard_isomorphism dbr:Programming_language dbr:University_of_Kent dbr:Well-founded dbr:Lazy_evaluation dbr:Derivative n77: dbr:Function_argument dbr:Memoization n78: dbr:XQuery dbr:Roger_Hui dbr:Entscheidungsproblem n79: dbr:Anonymous_function dbr:Prentice_Hall dbr:Formal_system dbr:Mathematica dbr:Formal_verification dbr:Massachusetts_Institute_of_Technology dbr:T-Mobile dbr:Inductive_functional_programming n81: dbr:Structure_and_Interpretation_of_Classical_Mechanics dbr:GNU_Compiler_Collection dbr:Computer_simulation n82: n83: n84: dbr:Assembly_language dbr:Uniqueness_type dbr:Common_Lisp n86: dbr:Hoare_logic dbr:Glasgow_Haskell_Compiler dbr:Imperative_languages n87: dbr:Functional_reactive_programming dbr:Generalized_algebraic_data_type dbr:Currying dbr:Visual_Basic n89:11 dbr:Immutable_object n90: dbr:Declarative_programming n91: dbr:Computability dbr:Embedded_software dbr:Algebraic_datatypes dbr:Standard_ML n94: dbr:Open_standard dbr:Combinatory_logic dbr:List_of_functional_programming_topics n95: n96: n97: dbr:Java_programming dbr:SQL dbr:Typed_lambda_calculus dbr:Academic n99: dbr:Fibonacci_number dbr:Recursion dbr:Program_loops dbr:Function-level_programming
dbo:wikiPageExternalLink
n30:html n37: n38:pdf n55:html n60:org n72:html n73:html n76:html n93:
foaf:isPrimaryTopicOf
wikipedia-en:Functional_programming
prov:wasDerivedFrom
n59:744293332
dbo:abstract
البرمجة الوظيفية هي البرمجة التي تتعامل مع الحسابات كحل الدوال الرياضية باتباع قواعد وقوانين رياضية. الهدف من البرمجة الوظيفية محاكاة طريقة حل الدوال الرياضية بأكبر درجة ممكنة.هذا الهدف هو ماجعل البرمجة الوظيفية تختلف تمامًا عن البرمجة باستخدام لغات الأوامر في طريقة تعاملها مع المشكلات وحلها. En ciencias de la computación, la programación funcional es un paradigma de programación declarativa basado en el uso de funciones matemáticas, en contraste con la programación imperativa, que enfatiza los cambios de estado mediante la mutación de variables. La programación funcional tiene sus raíces en el cálculo lambda, un sistema formal desarrollado en los años 1930 para investigar la definición de función, la aplicación de las funciones y la recursión. Muchos lenguajes de programación funcionales pueden ser vistos como elaboraciones del cálculo lambda. En la práctica, la diferencia entre una función matemática y la noción de una "función" utilizada en la programación imperativa, es que las funciones imperativas pueden tener efectos secundarios, como cambiar el valor de cálculos realizados previamente. Por esta razón carecen de transparencia referencial, es decir, la misma expresión sintáctica puede resultar en valores diferentes en varios momentos de la ejecución del programa. Con código funcional, en contraste, el valor generado por una función depende exclusivamente de los argumentos alimentados a la función. Al eliminar los efectos secundarios se puede entender y predecir el comportamiento de un programa mucho más fácilmente. Ésta es una de las principales motivaciones para utilizar la programación funcional. Los lenguajes de programación funcional, especialmente los puramente funcionales, han sido enfatizados en el ambiente académico y no tanto en el desarrollo comercial o industrial. Sin embargo, lenguajes de programación funcional como Scheme, Erlang, Rust, Objective Caml , Scala, F# y Haskell, han sido utilizados en aplicaciones comerciales e industriales por muchas organizaciones. La programación funcional también es utilizada en la industria a través de lenguajes de dominio específico como R (estadística), Mathematica (matemáticas simbólicas), J y K (análisis financiero). Los lenguajes de uso específico usados comúnmente como SQL y Lex/Yacc, utilizan algunos elementos de programación funcional, especialmente al procesar valores mutables. Las hojas de cálculo también pueden ser consideradas lenguajes de programación funcional. La programación funcional también puede ser desarrollada en lenguajes que no están diseñados específicamente para la programación funcional. En el caso de Perl, por ejemplo, que es un lenguaje de programación imperativo, existe un libro que describe como aplicar conceptos de programación funcional. JavaScript, uno de los lenguajes más ampliamente utilizados en la actualidad, también incorpora capacidades de programación funcional. Python también incorpora particularidades de los lenguajes funcionales como listas de comprensión y funciones de tratamiento de listas como matemática de conjuntos. Java en su versión 8, está incorporando la programación funcional, así como el uso de las expresiones lambda. In de informatica is functioneel programmeren een programmeerstijl en een van de drie programmeerparadigma's. Hierbij wordt de informatieverwerking in de vorm van functies uitgedrukt, vergelijkbaar met wiskundige functies. Bij deze stijl dienen (liefst alle) wijzigingen van variabelen buiten de functie (de zogenaamde "neveneffecten") en het opslaan van programmatoestand en wijzigbare variabelen vermeden te worden. Variabelen met als bedoeling accumulator, teller, globale of controlevariabele zijn uit den boze.Voorbeelden van meer of minder zuivere programmeertalen voor functioneel programmeren zijn APL, Erlang, F♯, Haskell, Lisp, ML, Scala en Scheme, waarvan Haskell de puurste is. 函數式編程(英语:functional programming)或称函数程序设计,又稱泛函編程,是一種編程典範,它將電腦運算視為數學上的函數計算,並且避免使用程序状态以及易变物件。函數程式語言最重要的基礎是λ演算(lambda calculus)。而且λ演算的函數可以接受函數當作輸入(引數)和輸出(傳出值)。 比起指令式編程,函數式編程更加強調程序执行的结果而非执行的过程,倡导利用若干简单的执行单元让计算结果不断渐进,逐层推导复杂的运算,而不是设计一个复杂的执行过程。 関数型言語(かんすうがたげんご、英: functional language)は、以下に述べる関数型プログラミングを基本スタイルとして推奨する機能を持つプログラミング言語、関数型プログラミング言語の略称である。 Programowanie funkcyjne – filozofia i metodyka programowania będąca odmianą programowania deklaratywnego, w której funkcje należą do wartości podstawowych, a nacisk kładzie się na wartościowanie (często rekurencyjnych) funkcji, a nie na wykonywanie poleceń. W czystym programowaniu funkcyjnym, raz zdefiniowana funkcja zwraca zawsze tę samą wartość dla danych wartości argumentów, tak jak funkcje matematyczne. In informatica la programmazione funzionale è un paradigma di programmazione in cui il flusso di esecuzione del programma assume la forma di una serie di valutazioni di funzioni matematiche. Il punto di forza principale di questo paradigma è la mancanza di effetti collaterali (side-effect) delle funzioni, il che comporta una più facile verifica della correttezza e della mancanza di bug del programma e la possibilità di una maggiore ottimizzazione dello stesso. Un uso particolare del paradigma, per l'ottimizzazione dei programmi, è quello di trasformare gli stessi per utilizzarli nella programmazione parallela. La programmazione funzionale pone maggior accento sulla definizione di funzioni, rispetto ai paradigmi procedurali e imperativi, che invece prediligono la specifica di una sequenza di comandi da eseguire. In questi ultimi, i valori vengono calcolati cambiando lo stato del programma attraverso delle assegnazioni; un programma funzionale, invece, è immutabile: i valori non vengono trovati cambiando lo stato del programma, ma costruendo nuovi stati a partire dai precedenti. Funktionale Programmierung ist ein Programmierparadigma, bei dem Programme ausschließlich aus Funktionen bestehen. Dadurch wird bewusst auf die aus der imperativen Programmierung bekannten Nebenwirkungen verzichtet. In der imperativen Programmierung sieht man ein Programm als Folge von Anweisungen (engl. statements), die etwas tun, und dabei meistens Variablen verändern. In der funktionalen Programmierung besteht ein Programm aus Ausdrücken, die ausgewertet werden (eval von Ausdrücken, apply von Funktionen). Beispiel: Eine imperative if-then-else-Konstruktion führt je nach Bedingung verschiedene Aktionen aus. Ein funktionaler if-then-else-Ausdruck ergibt je nach Bedingung verschiedene Werte. Die funktionale Programmierung entspringt der akademischen Forschung. In den 1930er Jahren arbeiteten verschiedene Personen am Lambda-Kalkül. Hierbei geht es um Funktionen und deren Auswertung. Funktionale Sprachen sind Umsetzungen dieser Forschung. Eine funktionale Programmiersprache ist eine Programmiersprache, die Sprachelemente zur Kombination und Transformation von Funktionen anbietet. Eine rein funktionale Programmiersprache ist eine Programmiersprache, die die Verwendung von Elementen ausschließt, die im Widerspruch zum funktionalen Programmierparadigma stehen. Einige Autoren verwenden den Ausdruck „funktionale Programmiersprache“ gleichbedeutend mit „rein funktionale Programmiersprache“. In computer science, functional programming is a programming paradigm—a style of building the structure and elements of computer programs—that treats computation as the evaluation of mathematical functions and avoids changing-state and mutable data. It is a declarative programming paradigm, which means programming is done with expressions or declarations instead of statements. In functional code, the output value of a function depends only on the arguments that are input to the function, so calling a function f twice with the same value for an argument x will produce the same result f(x) each time. Eliminating side effects, i.e. changes in state that do not depend on the function inputs, can make it much easier to understand and predict the behavior of a program, which is one of the key motivations for the development of functional programming. Functional programming has its roots in lambda calculus, a formal system developed in the 1930s to investigate computability, the Entscheidungsproblem, function definition, function application, and recursion. Many functional programming languages can be viewed as elaborations on the lambda calculus. Another well-known declarative programming paradigm, logic programming, is based on relations. In contrast, imperative programming changes state with commands in the source language, the most simple example being assignment. Imperative programming does have functions—not in the mathematical sense—but in the sense of subroutines. They can have side effects that may change the value of program state. Functions without return values therefore make sense. Because of this, they lack referential transparency, i.e. the same language expression can result in different values at different times depending on the state of the executing program. Functional programming languages, especially purely functional ones such as Hope, have largely been emphasized in academia rather than in commercial software development. However, prominent programming languages which support functional programming such as Common Lisp, Scheme, Clojure, Wolfram Language (also known as Mathematica), Racket, Erlang, OCaml, Haskell, and F# have been used in industrial and commercial applications by a wide variety of organizations. Functional programming is also supported in some domain-specific programming languages like R (statistics), J, K and Q from Kx Systems (financial analysis), XQuery/XSLT (XML), and Opal. Widespread domain-specific declarative languages like SQL and Lex/Yacc use some elements of functional programming, especially in eschewing mutable values. Programming in a functional style can also be accomplished in languages that are not specifically designed for functional programming. For example, the imperative Perl programming language has been the subject of a book describing how to apply functional programming concepts. This is also true of the PHP programming language. C++11, Java 8, and C# 3.0 all added constructs to facilitate the functional style. The Julia language also offers functional programming abilities. An interesting case is that of Scala – it is frequently written in a functional style, but the presence of side effects and mutable state place it in a grey area between imperative and functional languages. La programmation fonctionnelle est un paradigme de programmation qui considère le calcul en tant qu'évaluation de fonctions mathématiques. Comme le changement d'état et la mutation des données ne peuvent pas être représentés par des évaluations de fonctions la programmation fonctionnelle ne les admet pas, au contraire elle met en avant l'application des fonctions, contrairement au modèle de programmation impérative qui met en avant les changements d'état. Un langage fonctionnel est donc un langage de programmation dont la syntaxe et les caractéristiques encouragent la programmation fonctionnelle. Alors que l'origine de la programmation fonctionnelle peut être trouvée dans le lambda-calcul, le langage fonctionnel le plus ancien est Lisp, créé en 1958 par McCarthy. Lisp a donné naissance à des variantes telles que Scheme (1975) et Common Lisp (1984) qui, comme Lisp, ne sont pas ou peu typées. Des langages fonctionnels plus récents tels ML (1973), Haskell (1987), OCaml, Erlang, Clean et Oz, CDuce, Scala (2003) ou F# sont fortement typés. Em ciência da computação, programação funcional é um paradigma de programação que trata a computação como uma avaliação de funções matemáticas e que evita estados ou dados mutáveis. Ela enfatiza a aplicação de funções, em contraste da programação imperativa, que enfatiza mudanças no estado do programa. Uma função, neste sentido, pode ter ou não ter parâmetros e um simples valor de retorno. Os parâmetros são os valores de entrada da função, e o valor de retorno é o resultado da função. A definição de uma função descreve como a função será avaliada em termos de outras funções. Por exemplo, a função é definida em termos de funções de exponenciação e adição. Do mesmo modo, a linguagem deve oferecer funções básicas que não requerem definições adicionais. Linguagens de programação funcionais, especialmente as puramente funcionais, tem sido mais usadas academicamente que no desenvolvimento comercial de software. Entretanto, algumas linguagens notáveis usadas na indústria e no comércio incluem Erlang (aplicações concorrentes), R (estatística), Mathematica (matemática simbólica) J, K (análise financeira) e XSLT. Importantes influências na programação funcional foram o cálculo lambda, as linguagens de programação APL e Lisp, e mais recentemente ML, Haskell, OCaml, F# e Elixir. Функциона́льное программи́рование — раздел дискретной математики и парадигма программирования, в которой процесс вычисления трактуется как вычисление значений функций в математическом понимании последних (в отличие от функций как подпрограмм в процедурном программировании). Противопоставляется парадигме императивного программирования, которая описывает процесс вычислений как последовательное изменение состояний (в значении, подобном таковому в теории автоматов). При необходимости, в функциональном программировании вся совокупность последовательных состояний вычислительного процесса представляется явным образом, например, как список. Функциональное программирование предполагает обходиться вычислением результатов функций от исходных данных и результатов других функций, и не предполагает явного хранения состояния программы. Соответственно, не предполагает оно и изменяемость этого состояния (в отличие от императивного, где одной из базовых концепций является переменная, хранящая своё значение и позволяющая менять его по мере выполнения алгоритма). На практике отличие математической функции от понятия «функции» в императивном программировании заключается в том, что императивные функции могут опираться не только на аргументы, но и на состояние внешних по отношению к функции переменных, а также иметь побочные эффекты и менять состояние внешних переменных. Таким образом, в императивном программировании при вызове одной и той же функции с одинаковыми параметрами, но на разных этапах выполнения алгоритма, можно получить разные данные на выходе из-за влияния на функцию состояния переменных. А в функциональном языке при вызове функции с одними и теми же аргументами мы всегда получим одинаковый результат: выходные данные зависят только от входных. Это позволяет средам выполнения программ на функциональных языках кешировать результаты функций и вызывать их в порядке, не определяемом алгоритмом и распараллеливать их без каких-либо дополнительных действий со стороны программиста (что обеспечивают функции без побочных эффектов — чистые функции). Лямбда-исчисление являются основой для функционального программирования, многие функциональные языки можно рассматривать как «надстройку» над ними.
dbp:colwidth
30
n31:hasRank
_:vb27510961
n57:hypernym
dbr:Style
Subject Item
_:vb27510961
n31:rankValue
44.2746