Meta tags:
Headings (most frequently used words):
programming, functional, comparison, to, imperative, and, functions, strict, non, contents, history, concepts, logic, applications, see, also, notes, references, further, reading, external, links, first, class, higher, order, pure, recursion, versus, evaluation, type, systems, referential, transparency, data, structures, vs, simulating, state, efficiency, issues, in, languages, text, editors, spreadsheets, microservices, academia, industry, education, abstraction, cost,
Text of the page (most frequently used words):
the (317), #programming (201), and (197), #functional (168), for (94), retrieved (79), languages (66), language (65), functions (60), with (58), from (57), are (56), that (53), can (50), function (39), such (38), data (36), imperative (34), this (32), order (32), edit (31), programs (30), 2009 (29), archived (29), original (29), higher (28), doi (28), which (28), use (27), logic (26), not (26), evaluation (26), have (26), recursion (25), used (25), pure (24), other (23), first (23), pdf (22), some (22), example (21), type (21), program (21), lambda (21), computer (21), java (20), haskell (19), isbn (19), 2024 (19), state (19), has (19), code (18), was (18), lisp (18), based (18), 2006 (18), also (18), its (18), mother (18), acm (17), using (16), types (16), object (16), lazy (16), 1145 (16), developed (16), all (15), org (15), oriented (15), style (15), class (15), 2011 (15), may (14), structures (14), john (14), calculus (14), scheme (14), clojure (14), s2cid (14), while (14), list (13), strict (13), 2013 (13), 2021 (13), science (13), most (13), arguments (13), they (13), been (13), side (13), effects (13), concurrent (12), immutable (12), part (12), python (12), implementation (12), 2008 (12), 2020 (12), like (12), scala (12), being (12), tail (12), history (12), their (12), purely (11), 978 (11), rust (11), compiler (11), but (11), articles (10), level (10), system (10), more (10), article (10), new (10), theory (10), 2007 (10), erlang (10), journal (10), systems (10), values (10), conference (10), one (10), including (10), however (10), into (10), even (10), result (10), main (10), non (9), computing (9), april (9), common (9), university (9), cufp (9), same (9), classes (9), expressions (9), since (9), when (9), many (9), any (9), them (9), called (9), features (8), design (8), simon (8), peter (8), press (8), structure (8), closures (8), charles (8), well (8), form (8), harry (8), loop (8), time (8), wikipedia (7), terms (7), paradigms (7), array (7), application (7), large (7), does (7), 2018 (7), perl (7), approach (7), book (7), why (7), communications (7), standard (7), 2012 (7), march (7), popular (7), notation (7), optimizations (7), applications (7), ocaml (7), between (7), turing (7), concepts (7), these (7), sometimes (7), several (7), research (7), means (7), map (7), implemented (7), number (7), memory (7), int (7), allow (7), page (6), july (6), javascript (6), august (6), php (6), third (6), second (6), machine (6), paradigm (6), comparison (6), space (6), algebraic (6), specific (6), value (6), anonymous (6), persistent (6), david (6), vol (6), 1998 (6), 2005 (6), sigplan (6), development (6), references (6), 2015 (6), analysis (6), church (6), industry (6), elizabeth (6), two (6), written (6), where (6), than (6), might (6), mutable (6), arrays (6), computations (6), way (6), toggle (5), about (5), text (5), statements (5), links (5), international (5), structured (5), concurrency (5), pattern (5), user (5), expression (5), dependent (5), recursive (5), nested (5), created (5), 1996 (5), limited (5), through (5), mit (5), how (5), curry (5), cambridge (5), 2017 (5), prevents (5), properties (5), returns (5), software (5), lang (5), computation (5), june (5), monads (5), hughes (5), uses (5), proceedings (5), information (5), proper (5), formal (5), concept (5), burstall (5), backus (5), landin (5), had (5), will (5), related (5), introduced (5), though (5), execution (5), strategy (5), diana (5), only (5), often (5), because (5), support (5), access (5), general (5), certain (5), express (5), return (5), variable (5), referential (5), transparency (5), transparent (5), typed (5), contents (4), search (4), developers (4), under (4), categories (4), cs1 (4), errors (4), description (4), control (4), very (4), high (4), multi (4), symbolic (4), parallel (4), actor (4), stack (4), english (4), declarative (4), syntax (4), introduction (4), external (4), paul (4), robert (4), combinatory (4), 1985 (4), interpretation (4), making (4), 2019 (4), department (4), com (4), richard (4), microservices (4), jones (4), issn (4), freeze (4), method (4), existing (4), doc (4), loops (4), runtime (4), hardware (4), optimization (4), february (4), programmer (4), without (4), complete (4), notes (4), guide (4), caml (4), inference (4), cite (4), 1993 (4), checking (4), equivalent (4), semantics (4), 1987 (4), 1994 (4), efficiency (4), make (4), association (4), machinery (4), algebra (4), abstract (4), who (4), kotlin (4), examples (4), commercial (4), finance (4), elixir (4), applied (4), see (4), teach (4), basis (4), implement (4), early (4), spreadsheets (4), generally (4), implementations (4), enable (4), emacs (4), parent (4), simply (4), generate (4), special (4), input (4), consider (4), fully (4), libraries (4), always (4), filter (4), reduce (4), each (4), allowing (4), constant (4), cost (4), argument (4), integer (4), issues (4), usually (4), thus (4), applying (4), different (4), numlist (4), update (4), referentially (4), changes (4), then (4), lets (4), mathematical (4), built (4), calls (4), hide (4), move (4), sidebar (4), add (3), table (3), view (3), statement (3), 2026 (3), states (3), low (3), assembly (3), lists (3), driven (3), separation (3), abstraction (3), inductive (3), automatic (3), models (3), constraint (3), production (3), transformation (3), simulation (3), natural (3), modeling (3), domain (3), streams (3), reactive (3), total (3), partial (3), call (3), procedural (3), mertz (3), help (3), file (3), addison (3), wesley (3), publishing (3), prentice (3), hall (3), practice (3), mark (3), north (3), holland (3), william (3), company (3), guy (3), sussman (3), gerald (3), jay (3), framework (3), allegro (3), need (3), 2016 (3), 2010 (3), building (3), implementing (3), december (3), defined (3), alan (3), peyton (3), 1017 (3), symposium (3), changed (3), added (3), addition (3), item (3), effective (3), operations (3), ibm (3), 135 (3), iterators (3), wiki (3), model (3), immutability (3), september (3), machines (3), lecture (3), springer (3), ways (3), category (3), san (3), diego (3), california (3), simple (3), unification (3), 185 (3), huet (3), gérard (3), later (3), launchbury (3), turner (3), fortran (3), 1977 (3), 1978 (3), liberated (3), von (3), neumann (3), correspondence (3), algol (3), writing (3), mccarthy (3), util (3), xml (3), range (3), web (3), wolfram (3), education (3), risk (3), similar (3), manner (3), given (3), considered (3), dialect (3), mid (3), 1990s (3), financial (3), active (3), there (3), academia (3), extensions (3), his (3), relational (3), father (3), relations (3), queried (3), case (3), represented (3), following (3), patterns (3), supported (3), aid (3), library (3), both (3), iteration (3), zero (3), abstractions (3), times (3), calling (3), 100 (3), version (3), efficiently (3), perform (3), modern (3), passing (3), seem (3), safe (3), fact (3), complex (3), create (3), purpose (3), counterparts (3), logarithmic (3), were (3), tasks (3), account (3), replaced (3), now (3), assignment (3), meaning (3), rocq (3), 1970s (3), accepts (3), makes (3), miranda (3), evaluate (3), requires (3), expressed (3), cannot (3), entities (3), treated (3), described (3), dialects (3), forms (3), iverson (3), tools (3), subsection (3), statistics (2), contact (2), privacy (2), policy (2), available (2), additional (2), apply (2), you (2), profit (2), organization (2), wikimedia (2), foundation (2), inc (2), commons (2), last (2), spoken (2), unsourced (2), template (2), wayback (2), deprecated (2), parameters (2), french (2), maint (2), location (2), missing (2), publisher (2), short (2), wikidata (2), comparisons (2), france (2), national (2), databases (2), generation (2), compiled (2), event (2), concerns (2), modifying (2), interactive (2), extensible (2), visual (2), graph (2), set (2), scripting (2), scientific (2), probabilistic (2), automata (2), query (2), applicative (2), point (2), free (2), gadts (2), prototype (2), small (2), modular (2), audio (2), subsequent (2), thompson (2), technical (2), englewood (2), cliffs (2), jersey (2), sullivan (2), reilly (2), world (2), 1990 (2), graham (2), dominus (2), jason (2), morgan (2), kaufmann (2), amsterdam (2), hindley (2), roger (2), brooks (2), feys (2), 1958 (2), 1985sicp (2), bibcode (2), abelson (2), hal (2), further (2), reading (2), imacs (2), better (2), life (2), what (2), students (2), introductory (2), engineering (2), berkeley (2), edition (2), wappalyzer (2), phoenix (2), commerce (2), stackshare (2), purescript (2), elm (2), companies (2), clojurescript (2), pascal (2), 1st (2), january (2), infoq (2), startup (2), 2003 (2), trading (2), derivative (2), whatsapp (2), 2014 (2), facebook (2), improving (2), 143 (2), 131 (2), spreadsheet (2), stallman (2), syntactic (2), combining (2), pages (2), 142 (2), daniel (2), freezing (2), removed (2), passed (2), mutability (2), michael (2), gosling (2), james (2), oracle (2), martin (2), project (2), functools (2), lua (2), developerworks (2), hartel (2), pieter (2), 2004 (2), 129 (2), experience (2), 2002 (2), cache (2), published (2), 2023 (2), scaleyourapp (2), understanding (2), collections (2), lifetimes (2), depth (2), benchmarks (2), game (2), vectors (2), 521 (2), berlin (2), heidelberg (2), 540 (2), 16761 (2), 1007 (2), 123 (2), change (2), identity (2), comprehensive (2), polymatheia (2), technology (2), matters (2), october (2), generalized (2), documentation (2), leroy (2), xavier (2), compcert (2), verified (2), citeseerx (2), undecidable (2), years (2), equations (2), 1973 (2), practical (2), harper (2), 751 (2), universal (2), cons (2), clinger (2), r6rs (2), revised (2), report (2), algorithmic (2), openscad (2), easier (2), 1093 (2), review (2), macqueen (2), sannella (2), hope (2), 1980 (2), 136 (2), darlington (2), paper (2), 641 (2), 359576 (2), 359579 (2), 613 (2), next (2), 700 (2), 101 (2), 308 (2), commonly (2), artificial (2), intelligence (2), field (2), proved (2), theorems (2), viewed (2), steele (2), evolution (2), link (2), formulation (2), 2266170 (2), jstor (2), 2307 (2), 1937 (2), 2268280 (2), known (2), dylan (2), tour (2), dlang (2), 1974 (2), processing (2), xslt (2), papers (2), lean (2), theorem (2), howard (2), 1238844 (2), hudak (2), commercially (2), aerospace (2), frequently (2), asked (2), training (2), mactech (2), editor (2), macscheme (2), 1984 (2), eager (2), portal (2), relatively (2), problem (2), classical (2), mechanics (2), methods (2), 137 (2), 138 (2), platforms (2), particularly (2), heavily (2), influenced (2), needed (2), seen (2), include (2), projects (2), wide (2), industrial (2), late (2), 1980s (2), become (2), computers (2), problems (2), areas (2), verification (2), static (2), initially (2), suitable (2), lack (2), academic (2), author (2), gnu (2), editors (2), ciao (2), resulting (2), prolog (2), phillip (2), grandparent (2), difference (2), here (2), maternal_grandmother (2), definition (2), relation (2), children (2), whereas (2), roughly (2), lambdas (2), simulate (2), basic (2), explicitly (2), feature (2), overhead (2), operation (2), elements (2), cpu (2), mean (2), direct (2), underlying (2), attributed (2), exception (2), involved (2), implements (2), various (2), slower (2), equals (2), must (2), true (2), running (2), optimize (2), speed (2), theoretical (2), leaks (2), analyzing (2), caches (2), schemes (2), suited (2), eliminating (2), allows (2), variants (2), instead (2), shared (2), mechanisms (2), message (2), cases (2), lead (2), itself (2), formally (2), less (2), efficient (2), easy (2), designed (2), clean (2), presence (2), effect (2), impure (2), current (2), still (2), around (2), difficult (2), understand (2), maintaining (2), simulating (2), avoids (2), amount (2), sum (2), traditional (2), numbers (2), older (2), would (2), returning (2), provides (2), random (2), trees (2), another (2), either (2), gives (2), never (2), gadt (2), avoiding (2), proposed (2), subset (2), proofs (2), intuitionistic (2), invalid (2), compilation (2), valid (2), reject (2), strong (2), test (2), false (2), milner (2), describes (2), proposes (2), fails (2), print (2), containing (2), failing (2), term (2), versus (2), unrestricted (2), cause (2), founded (2), unbounded (2), users (2), just (2), claim (2), among (2), approaches (2), compilers (2), operator (2), results (2), restriction (2), displaystyle (2), found (2), led (2), influence (2), associated (2), constructive (2), edinburgh (2), npl (2), incorporated (2), rather (2), 1960s (2), apl (2), ipl (2), extended (2), paradigmatic (2), numerous (2), 1930s (2), composing (2), appearance (2), upload (2), read (2), bahasa (2), log (2), donate (2), menu (2), topic, mobile, cookie, conduct, legal, safety, contacts, disclaimers, site, agree, registered, trademark, creative, attribution, sharealike, license, rendered, parsoid, edited, utc, hidden, haudio, microformats, 2022, webarchive, sources, matches, https, index, title, functional_programming, oldid, 1366590619, yale, lux, israel, spain, czech, republic, bnf, united, fast, gnd, authority, fifth, fourth, esoteric, interpreted, subjects, roles, literate, components, aspects, self, reflective, vibe, coding, demonstration, bayesian, synthesis, stage, metalinguistic, hygienic, macro, homoiconicity, generic, dynamic, attribute, metaprogramming, service, relativistic, process, partitioned, global, address, organic, multitier, macroprogramming, choreographic, mutual, exclusion, rewriting, templating, tactile, theoretic, quantum, filters, pipes, comprehension, interface, grammar, end, differentiable, spacecraft, command, action, dsl, ontology, nondeterministic, answer, abductive, synchronous, signals, flow, dataflow, monad, concatenative, uniform, agent, invariant, contract, block, jackson, akhmechet, slava, defmacro, rest, ford, neal, thinking, revision, dated, reflect, edits, minutes, listen, harlow, england, longman, craft, salus, handbook, indianapolis, indiana, macmillan, pratt, terrence, 3rd, marvin, victor, zelkowitz, brian, stewart, don, goerzen, real, michaelson, greg, courier, corporation, 486, 28029, maclennan, bruce, ansi, felleisen, matthias, findler, flatt, matthew, krishnamurthi, shriram, 1972, 7204, 2208, seldin, jonathan, craig, volume, cousineau, michel, mauny, 262, 51036, staff, thinkers, beneficial, home, adelphi, edu, network, twit, triangulation, interviewed, show, emmanuel, schanzer, bootstrap, denero, fall, electrical, sciences, 61a, preface, bsc, modules, imperial, college, london, oxford, www, websites, team, editorial, germany, news, know, best, polish, online, marketplace, herrick, justin, jah2488, bugnion, 9781785281372, packt, lorimer, live, announced, laurikari, ville, security, sims, steve, beating, averages, momtahan, lee, edf, pricing, blog, important, piece, our, infrastracture, million, november, sim, diasca, scale, discrete, engine, piro, christopher, rodger, manning, 9781638351733, tao, excel, blackwell, burnett, margaret, wakeling, 29429059, 0956, 7968, s0956796806006186, casas, cabeza, hermenegildo, 8th, flops, 162, friedman, byrd, oleg, kiselyov, hemann, reasoned, schemer, freezes, frozen, longer, changing, enumerability, configurability, writability, developer, mozilla, mdn, bloch, joshua, minimize, 0321356680, williams, quick, start, road, skarsaune, sics, port, translation, smalltalk, callable, objects, origins, van, rossum, guido, eich, brendan, popularity, golang, unofficial, faq, ufaq, digital, mars, henk, muller, hugh, glaser, 32346900, s0956796803004817, comparing, performance, dev, berthe, samuel, samber, nethercote, nicholas, mycroft, supplement, 0362, 1340, 773039, 773044, notices, behaviour, stock, realworldhaskell, chapter, profiling, cesarini, francesco, media, 596, 55585, build, blocking, throughput, distributed, docs, tutorials, essential, validating, borrowing, look, igor, pechtchanski, vivek, sarkar, specification, 662, 34527406, 1002, cpe, 853, 639, benchmarksgame, alioth, debian, fastest, spiewak, commit, 56543, working, paulson, larry, hartmanis, juris, hemachandra, lane, 1986, complexity, 226, 7_62, fun, thirteen, looking, turtle, newbern, monadic, barr, orange, jean, niklas, vector, 66350, chris, okasaki, chalmers, kennedy, andrew, russo, claudio, oopsla, 9781595930316, 1094811, 1094814, inria, manual, vytiniotis, dimitrios, geoffrey, washburn, icfp, weirich, stephanie, parameter, wells, typability, 3590, 176, tech, rep, 011, carreño, muñoz, tahar, eds, lncs, 2410, 15th, tphol, sep, 1976, universite, paris, vii, resolution, dans, des, langages, ordre, undecidability, 267, 1016, s0019, 9958, 90301, 257, foundations, principles, charleston, south, carolina, 154, 158511, 158618, 144, 768, 3217, jucs, 010, 0751, baker, henry, should, cheney, 16812984, 0897919874, 277650, 277719, 174, pldi, rationale, standardization, 338, 336, iso, iec, jtc, wg5, n2137, committee, draft, 007r2, pountain, dick, byte, comes, age, sean, tull, monoidal, leo, cheung, infoworld, your, leonard, stealthy, rise, bright, ars, technica, love, trendy, earn, discovering, assign, zhenjiang, meng, wang, mattered, 370, nsr, nwv042, 349, experimental, stanford, developing, considerations, invited, proc, infotech, art, conf, revolution, copenhagen, 0001, 0782, commun, 1966b, 166, 13409665, 365230, 365257, 157, 1965b, 165, 15781851, 363791, 363804, 158, 1965a, 6505810, 363744, 363749, diehl, stephan, sestoft, 2000, 739, future, 1964, 320, comjnl, british, society, mechanical, memoir, 1991, 189, 190, claims, newell, cliff, shaw, adjudged, parents, automatically, accomplish, invent, retrospectively, embeds, principia, mathematica, theorist, 465, 04640, herbert, gabriel, 330, 47047140, 201, 89502, 234286, 1057818, 233, 1960, 195, 1489409, 367177, 367199, 184, los, angeles, 800025, 808387, 173, hopl, 1940, 15889861, computability, definability, 163, 2317046, 153, package, vanderbauwhede, wim, cleaner, youtube, gophercon, meeus, cain, gang, ltd, metaclasses, holywell, architect, 9781940111056, 55860, 701, painter, ndc, oslo, sequel, 264, 249, sigfidet, boyce, raymond, chamberlin, donald, four, approached, novatchev, dimitre, proof, verlag, 387, 98503, chambers, schedule, includes, banz, matt, opensource, moura, leonardo, ullrich, sebastian, prover, automated, deduction, 12699, 635, 1611, 3349, 030, 79876, 5_37, 625, peake, alex, substantial, line, business, mansell, quantitative, wadler, 1238856, diverse, defense, startups, firms, lawnmower, manufacturers, minsky, yaron, weeks, stephen, 564, 30955392, s095679680800676x, 553, experiences, wall, street, larson, jim, 524392, 1467247, 1467263, armstrong, joe, 9781595937667, 1238850, questions, product, uncharted, colorado, math, cleis, kidd, eric, terrorism, response, hartheimer, anne, toolsmith, multitasking, 1989, 411, 207637854, 72551, 72554, 359, surveys, conception, topics, particular, choice, teaching, 141, outside, solving, geometric, 140, treat, others, 139, universities, analytics, investment, banks, factors, coded, interdependent, graphs, measure, correlations, market, shifts, regulatory, frameworks, variations, citation, categorical, capital, gröbner, widely, frontend, biggest, poland, classified, ads, platform, 134, lokalnie, 133, font, awesome, 132, 130, 128, 127, 126, 125, 124, employed, originally, intended, embedded, robot, driver, telescope, apple, macintosh, 122, 121, électricité, nortel, telecommunications, fault, tolerant, ericsson, swedish, area, publication, venues, focusing, trends, peer, reviewed, due, architectures, 120, composability, reuse, reusable, far, remain, primarily, nature, 119, 118, zeroth, highly, family, own, plugins, considers, favorite, 117, transforms, executes, representations, 116, needs, unnested, compared, compact, maternal, grandmother, instances, backwards, mothers, generalisation, every, output, inputs, outputs, 115, similarly, idea, included, tuple, 114, 113, expressible, dictates, corresponds, fold, catamorphism, visitor, necessary, replacements, capabilities, supports, replacement, 112, 111, 110, released, provide, expansive, inception, relegated, module, mainstream, 109, 108, 107, 106, 105, possible, traditionally, 104, 103, distinguishing, imposes, achieved, thanks, converted, standalone, instruction, controlling, iterative, writes, 102, stored, registers, unrolling, invocation, 1700, faster, handling, instance, benchmark, provided, profile, inlining, allocation, generics, str, illegalargumentexception, throw, uncheckedlongcast, bit, throws, defn, tool, linux, repl, leiningen, ryzen, 7900x, criterium, benchmarked, mod, check, asymptotically, slow, down, factor, introduce, improperly, discusses, give, advice, fixing, extensive, dereferenced, poorly, processors, deep, pipelines, miss, hundreds, cycles, potentially, virtue, reducing, hazards, locks, corresponding, synchronization, leverages, container, behavior, child, actors, queue, akka, atomic, nothing, assumptions, unsafe, increasing, opportunities, copying, implicit, dealing, computationally, costly, solve, issue, sharing, distinguishes, involves, inline, expansion, typically, straightforward, present, flat, accessed, deeply, pipelined, cpus, prefetched, handled, simd, instructions, equally, worst, slowdown, cells, balanced, tree, slowdowns, intensive, numerical, slightly, according, handle, multidimensional, matrices, pointer, chasing, alternative, track, explicit, uniqueness, hoare, managing, managed, updated, kind, enables, promoting, preferred, done, accept, together, leaving
Text of the page (random words):
h equals is a direct invocation of the underlying java method has a mean execution time of 2 8 μs roughly 1700 times faster part of that can be attributed to the type checking and exception handling involved in the implementation of even for instance the lo library for go which implements various higher order functions common in functional programming languages using generics in a benchmark provided by the library s author calling map is 4 slower than an equivalent for loop and has the same allocation profile 100 which can be attributed to various compiler optimizations such as inlining 101 one distinguishing feature of rust are zero cost abstractions this means that using them imposes no additional runtime overhead this is achieved thanks to the compiler using loop unrolling where each iteration of a loop be it imperative or using iterators is converted into a standalone assembly instruction without the overhead of the loop controlling code if an iterative operation writes to an array the resulting array s elements will be stored in specific cpu registers allowing for constant time access at runtime 102 functional programming in non functional languages edit it is possible to use a functional style of programming in languages that are not traditionally considered functional languages 103 for example both d 104 and fortran 95 62 explicitly support pure functions javascript lua 105 python and go 106 had first class functions from their inception 107 python had support for lambda map reduce and filter in 1994 as well as closures in python 2 2 108 though python 3 relegated reduce to the functools standard library module 109 first class functions have been introduced into other mainstream languages such as perl 5 0 in 1994 php 5 3 visual basic 9 c 3 0 c 11 and kotlin 29 in perl lambda map reduce filter and closures are fully supported and frequently used the book higher order perl released in 2005 was written to provide an expansive guide on using perl for functional programming in php anonymous classes closures and lambdas are fully supported libraries and language extensions for immutable data structures are being developed to aid programming in the functional style in java anonymous classes can sometimes be used to simulate closures 110 however anonymous classes are not always proper replacements to closures because they have more limited capabilities 111 java 8 supports lambda expressions as a replacement for some anonymous classes 112 in c anonymous classes are not necessary because closures and lambdas are fully supported libraries and language extensions for immutable data structures are being developed to aid programming in the functional style in c many object oriented design patterns are expressible in functional programming terms for example the strategy pattern simply dictates use of a higher order function and the visitor pattern roughly corresponds to a catamorphism or fold similarly the idea of immutable data from functional programming is often included in imperative programming languages 113 for example the tuple in python which is an immutable array and object freeze in javascript 114 comparison to logic programming edit logic programming can be viewed as a generalisation of functional programming in which functions are a special case of relations 115 for example the function mother x y every x has only one mother y can be represented by the relation mother x y whereas functions have a strict input output pattern of arguments relations can be queried with any pattern of inputs and outputs consider the following logic program mother charles elizabeth mother harry diana the program can be queried like a functional program to generate mothers from children mother harry x x diana mother charles x x elizabeth but it can also be queried backwards to generate children mother x elizabeth x charles mother x diana x harry it can even be used to generate all instances of the mother relation mother x y x charles y elizabeth x harry y diana compared with relational syntax functional syntax is a more compact notation for nested functions for example the definition of maternal grandmother in functional syntax can be written in the nested form maternal_grandmother x mother mother x the same definition in relational notation needs to be written in the unnested form maternal_grandmother x y mother x z mother z y here means if and means and however the difference between the two representations is simply syntactic in ciao prolog relations can be nested like functions in functional programming 116 grandparent x parent parent x parent x mother x parent x father x mother charles elizabeth father charles phillip mother harry diana father harry charles grandparent x y x harry y elizabeth x harry y phillip ciao transforms the function like notation into relational form and executes the resulting logic program using the standard prolog execution strategy applications edit text editors edit emacs a highly extensible text editor family uses its own lisp dialect for writing plugins the original author of the most popular emacs implementation gnu emacs and emacs lisp richard stallman considers lisp one of his favorite programming languages 117 spreadsheets edit spreadsheets can be considered a form of pure zeroth order strict evaluation functional programming system 118 however spreadsheets generally lack higher order functions as well as code reuse and in some implementations also lack recursion several extensions have been developed for spreadsheet programs to enable higher order and reusable functions but so far remain primarily academic in nature 119 microservices edit due to their composability functional programming paradigms can be suitable for microservices based architectures 120 academia edit functional programming is an active area of research in the field of programming language theory there are several peer reviewed publication venues focusing on functional programming including the international conference on functional programming the journal of functional programming and the symposium on trends in functional programming industry edit functional programming has been employed in a wide range of industrial applications for example erlang which was developed by the swedish company ericsson in the late 1980s was originally used to implement fault tolerant telecommunications systems 11 but has since become popular for building a range of applications at companies such as nortel facebook électricité de france and whatsapp 10 12 121 122 123 scheme a dialect of lisp was used as the basis for several applications on early apple macintosh computers 3 4 and has been applied to problems such as training simulation software 5 and telescope control 6 ocaml which was introduced in the mid 1990s has seen commercial use in areas such as financial analysis 14 driver verification industrial robot programming and static analysis of embedded software 15 haskell though initially intended as a research language 17 has also been applied in areas such as aerospace systems hardware design and web programming 16 17 other functional programming languages that have seen use in industry include scala 124 f 18 19 wolfram language 7 lisp 125 standard ml 126 127 and clojure 128 scala has been widely used in data science 129 while clojurescript 130 elm 131 or purescript 132 are some of the functional frontend programming languages used in production elixir s phoenix framework is also used by some relatively popular commercial projects such as font awesome or allegro one of the biggest e commerce platforms in poland 133 s classified ads platform allegro lokalnie 134 functional platforms have been popular in finance for risk analytics particularly with large investment banks risk factors are coded as functions that form interdependent graphs categories to measure correlations in market shifts similar in manner to gröbner basis optimizations but also for regulatory frameworks such as comprehensive capital analysis and review given the use of ocaml and caml variations in finance these systems are sometimes considered related to a categorical abstract machine functional programming is heavily influenced by category theory citation needed education edit many universities teach functional programming 135 136 137 138 some treat it as an introductory programming concept 138 while others first teach imperative programming methods 137 139 outside of computer science functional programming is used to teach problem solving algebraic and geometric concepts 140 it has also been used to teach classical mechanics as in the book structure and interpretation of classical mechanics in particular scheme has been a relatively popular choice for teaching programming for years 141 142 see also edit computer programming portal eager evaluation functional reactive programming inductive functional programming list of functional programming languages list of functional programming topics nested function purely functional programming notes and references edit hudak paul september 1989 conception evolution and application of functional programming languages pdf acm computing surveys 21 3 359 411 doi 10 1145 72551 72554 s2cid 207637854 archived from the original pdf on 2016 01 31 retrieved 2013 08 10 1 2 hughes john 1984 why functional programming matters 1 2 clinger will 1987 multitasking and macscheme mactech 3 12 retrieved 2008 08 28 1 2 hartheimer anne 1987 programming a text editor in macscheme toolsmith mactech 3 1 archived from the original on 2011 06 29 retrieved 2008 08 28 1 2 kidd eric terrorism response training in scheme cufp 2007 archived from the original on 2010 12 21 retrieved 2009 08 26 1 2 cleis richard scheme in space cufp 2006 archived from the original on 2010 05 27 retrieved 2009 08 26 1 2 wolfram language guide functional programming 2015 retrieved 2015 08 24 functional vs procedural programming language department of applied math university of colorado archived from the original on 2007 11 13 retrieved 2006 08 28 state based scripting in uncharted 2 pdf archived from the original pdf on 2012 12 15 retrieved 2011 08 08 1 2 who uses erlang for product development frequently asked questions about erlang retrieved 2018 04 27 1 2 armstrong joe june 2007 a history of erlang proceedings of the third acm sigplan conference on history of programming languages third acm sigplan conference on history of programming languages san diego california doi 10 1145 1238844 1238850 isbn 9781595937667 1 2 larson jim march 2009 erlang for concurrent programming communications of the acm 52 3 48 doi 10 1145 1467247 1467263 s2cid 524392 the elixir programming language retrieved 2021 02 14 1 2 minsky yaron weeks stephen july 2008 caml trading experiences with functional programming on wall street journal of functional programming 18 4 553 564 doi 10 1017 s095679680800676x s2cid 30955392 1 2 leroy xavier some uses of caml in industry pdf cufp 2007 archived from the original pdf on 2011 10 08 retrieved 2009 08 26 1 2 haskell in industry haskell wiki retrieved 2009 08 26 haskell has a diverse range of use commercially from aerospace and defense to finance to web startups hardware design firms and lawnmower manufacturers 1 2 3 hudak paul hughes j jones s p wadler p june 2007 a history of haskell being lazy with class third acm sigplan conference on history of programming languages san diego california doi 10 1145 1238844 1238856 retrieved 2013 09 26 1 2 mansell howard 2008 quantitative finance in f cufp 2008 archived from the original on 2015 07 08 retrieved 2009 08 29 1 2 peake alex 2009 the first substantial line of business application in f cufp 2009 archived from the original on 2009 10 17 retrieved 2009 08 29 de moura leonardo ullrich sebastian july 2021 the lean 4 theorem prover and programming language lecture notes in artificial intelligence conference on automated deduction vol 12699 pp 625 635 doi 10 1007 978 3 030 79876 5_37 issn 1611 3349 banz matt 2017 06 27 an introduction to functional programming in javascript opensource com retrieved 2021 01 09 the user 2006 conference schedule includes papers on the commercial use of r r project org 2006 06 08 retrieved 2011 06 20 chambers john m 1998 programming with data a guide to the s language springer verlag pp 67 70 isbn 978 0 387 98503 9 novatchev dimitre the functional programming language xslt a proof through examples retrieved may 27 2006 mertz david xml programming paradigms part four functional programming approached to xml processing ibm developerworks retrieved may 27 2006 chamberlin donald d boyce raymond f 1974 sequel a structured english query language proceedings of the 1974 acm sigfidet 249 264 functional programming dlang tour tour dlang org retrieved 2026 07 28 functional programming with c simon painter ndc oslo 2020 8 august 2021 archived from the original on 2021 10 30 retrieved 2021 10 23 1 2 functional programming kotlin programming language kotlin retrieved 2019 05 01 dominus mark j 2005 higher order perl morgan kaufmann isbn 978 1 55860 701 9 holywell simon 2014 functional programming in php php architect isbn 9781940111056 the cain gang ltd python metaclasses who why when pdf archived from the original pdf on 30 may 2009 retrieved 27 june 2009 gophercon 2020 dylan meeus functional programming with go youtube 22 december 2020 functional language features iterators and closures the rust programming language doc rust lang org retrieved 2021 01 09 vanderbauwhede wim 18 july 2020 cleaner code with functional programming archived from the original on 28 july 2020 retrieved 6 october 2020 effective scala scala wiki archived from the original on 2012 06 19 retrieved 2012 02 21 effective scala documentation for package java util function since java 8 also known as java 1 8 retrieved 2021 06 16 turing a m 1937 computability and λ definability the journal of symbolic logic 2 4 cambridge university press 153 163 doi 10 2307 2268280 jstor 2268280 s2cid 2317046 haskell brooks curry robert feys 1958 combinatory logic north holland publishing company retrieved 10 february 2013 church a 1940 a formulation of the simple theory of types journal of symbolic logic 5 2 56 68 doi 10 2307 2266170 jstor 2266170 s2cid 15889861 mccarthy john june 1978 history of lisp the first acm sigplan conference on history of programming languages hopl 1 pdf los angeles ca pp 173 185 doi 10 1145 800025 808387 cite book cs1 maint location missing publisher link john mccarthy 1960 recursive functions of symbolic expressions and their computation by machine part i pdf communications of the acm 3 4 184 195 doi 10 1145 367177 367199 s2cid 1489409 guy l steele richard p gabriel february 1996 the evolution of lisp history of programming languages ii pdf pp 233 330 doi 10 1145 234286 1057818 isbn 978 0 201 89502 5 s2cid 47047140 the memoir of herbert a simon 1991 models of my life pp 189 190 isbn 0 465 04640 1 claims that he al newell and cliff sh...
|