1747:), or handled with SIMD instructions. It is also not easy to create their equally efficient general-purpose immutable counterparts. For purely functional languages, the worst-case slowdown is logarithmic in the number of memory cells used, because mutable memory can be represented by a purely functional data structure with logarithmic access time (such as a balanced tree). However, such slowdowns are not universal. For programs that perform intensive numerical computations, functional languages such as
1697:. Monads offer a way to abstract certain types of computational patterns, including (but not limited to) modeling of computations with mutable state (and other side effects such as I/O) in an imperative manner without losing purity. While existing monads may be easy to apply in a program, given appropriate templates and examples, many students find them difficult to understand conceptually, e.g., when asked to define new monads (which is sometimes needed for certain types of libraries).
3210:
7176:
1016:). As a consequence, these languages fail to be Turing complete and expressing certain functions in them is impossible, but they can still express a wide class of interesting computations while avoiding the problems introduced by unrestricted recursion. Functional programming limited to well-founded recursion with a few other constraints is called
2981:, strict-evaluation functional programming system. 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.
1375:, a property of keeping previous versions of the data structure unmodified. In Clojure, persistent data structures are used as functional alternatives to their imperative counterparts. Persistent vectors, for example, use trees for partial updating. Calling the insert method will result in some but not all nodes being created.
1394:
Higher-order functions are rarely used in older imperative programming. A traditional imperative program might use a loop to traverse and modify a list. A functional program, on the other hand, would probably use a higher-order "map" function that takes a function and a list, generating and returning
877:
While most compilers for imperative programming languages detect pure functions and perform common-subexpression elimination for pure function calls, they cannot always do this for pre-compiled libraries, which generally do not expose this information, thus preventing optimizations that involve those
794:
in that higher-order functions and first-class functions both allow functions as arguments and results of other functions. The distinction between the two is subtle: "higher-order" describes a mathematical concept of functions that operate on other functions, while "first-class" is a computer science
6276:
The Object.freeze() method freezes an object. A frozen object can no longer be changed; freezing an object prevents new properties from being added to it, existing properties from being removed, prevents changing the enumerability, configurability, or writability of existing properties, and prevents
942:
language standard requires implementations to support proper tail recursion, meaning they must allow an unbounded number of active tail calls. Proper tail recursion is not simply an optimization; it is a language feature that assures users that they can use recursion to express a loop and doing so
1228:
Functional programs do not have assignment statements, that is, the value of a variable in a functional program never changes once defined. This eliminates any chances of side effects because any variable can be replaced with its actual value at any point of execution. So, functional programs are
1052:
fails under strict evaluation because of the division by zero in the third element of the list. Under lazy evaluation, the length function returns the value 4 (i.e., the number of items in the list), since evaluating it does not attempt to evaluate the terms making up the list. In brief, strict
1862:
2008 give some practical advice for analyzing and fixing them. However, the most general implementations of lazy evaluation making extensive use of dereferenced code and data perform poorly on modern processors with deep pipelines and multi-level caches (where a cache miss may cost hundreds of
2279:
can be viewed as a generalisation of functional programming, in which functions are a special case of relations. 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
448:, which amounts to a function that accepts a function as an argument, and, since it is an assembly-level language, code can be data, so IPL can be regarded as having higher-order functions. However, it relies heavily on the mutating list structure and similar imperative features.
5674:
1743:. This is related to the fact that some mutable data structures like arrays have a very straightforward implementation using present hardware. Flat arrays may be accessed very efficiently with deeply pipelined CPUs, prefetched efficiently through caches (with no complex
943:
would be safe-for-space. Moreover, contrary to its name, it accounts for all tail calls, not just tail recursion. While proper tail recursion is usually implemented by turning code into imperative loops, implementations might implement it in other ways. For example,
2231:, anonymous classes can sometimes be used to simulate closures; however, anonymous classes are not always proper replacements to closures because they have more limited capabilities. Java 8 supports lambda expressions as a replacement for some anonymous classes.
1827:
classes are implemented, where some of them are immutable variants of the corresponding classes that are not suitable for concurrent use. Functional programming languages often have a concurrency model that instead of shared state and synchronization, leverages
1681:
There are tasks (for example, maintaining a bank account balance) that often seem most naturally implemented with state. Pure functional programming performs these tasks, and I/O tasks such as accepting user input and printing to the screen, in a different way.
795:
term for programming language entities that have no restriction on their use (thus first-class functions can appear anywhere in the program that other first-class entities like numbers can, including as arguments to other functions and as their return values).
543:
Style? A Functional Style and its
Algebra of Programs". He defines functional programs as being built up in a hierarchical way by means of "combining forms" that allow an "algebra of programs"; in modern language, this means that functional programs follow the
3149:
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
6303:
A. Casas, D. Cabeza, M. V. Hermenegildo. A Syntactic
Approach to Combining Functional Notation, Lazy Evaluation and Higher-Order in LP Systems. The 8th International Symposium on Functional and Logic Programming (FLOPS'06), pages 142-162, April
1708:, for example, uses managed references that can be updated by applying pure functions to the current state. This kind of approach enables mutability while still promoting the use of pure functions as the preferred way to express computations.
1700:
Functional languages also simulate states by passing around immutable states. This can be done by making a function accept the state as one of its parameters, and return a new state together with the result, leaving the old state unchanged.
1082:, by easing independent implementation of producers and consumers of data streams. Launchbury 1993 describes some difficulties that lazy evaluation introduces, particularly in analyzing a program's storage requirements, and proposes an
5678:
184:, a formal system of computation based only on functions. Functional programming has historically been less popular than imperative programming, but many functional languages are seeing use today in industry and education, including
2238:, 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#.
1664:
Sometimes the abstractions offered by functional programming might lead to development of more robust code that avoids certain issues that might arise when building upon large amount of complex, imperative code, such as
2267:
Similarly, the idea of immutable data from functional programming is often included in imperative programming languages, for example the tuple in Python, which is an immutable array, and Object.freeze() in JavaScript.
868:
If the entire language does not allow side-effects, then any evaluation strategy can be used; this gives the compiler freedom to reorder or combine the evaluation of expressions in a program (for example, using
806:, a technique that applies a function to its arguments one at a time, with each application returning a new function that accepts the next argument. This lets a programmer succinctly express, for example, the
2549:
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:
1053:
evaluation always fully evaluates function arguments before invoking the function. Lazy evaluation does not evaluate function arguments unless their values are required to evaluate the function call itself.
157:, which can have side effects (such as modifying the program's state or taking input from a user). Proponents of purely functional programming claim that by restricting side effects, programs can have fewer
7372:
927:, which consumes space in a linear amount to the depth of recursion. This could make recursion prohibitively expensive to use instead of imperative loops. However, a special form of recursion known as
931:
can be recognized and optimized by a compiler into the same code used to implement iteration in imperative languages. Tail recursion optimization can be implemented by transforming the program into
5497:
228:
is a functional programming language commonly used for verifying mathematical theorems. Functional programming is also key to some languages that have found success in specific domains, like
1782:
Immutability of data can in many cases lead to execution efficiency by allowing the compiler to make assumptions that are unsafe in an imperative language, thus increasing opportunities for
689:
framework, although its restriction on reassigning values (all values are treated as constants) has led to confusion among users who are unfamiliar with functional programming as a concept.
1786:. Even if the involved copying that may seem implicit when dealing with persistent immutable data structures might seem computationally costly, some functional programming languages, like
3185:
Outside of computer science, functional programming is used to teach problem-solving, algebraic and geometric concepts. It has also been used to teach classical mechanics, as in the book
6277:
the values of existing properties from being changed. In addition, freezing an object also prevents its prototype from being changed. freeze() returns the same object that was passed in.
8119:
1128:
makes manipulation of complex data structures convenient; the presence of strong compile-time type checking makes programs more reliable in absence of other reliability techniques like
2074:
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
7278:
4865:
R.M. Burstall. Design considerations for a functional programming language. Invited paper, Proc. Infotech State of the Art Conf. "The
Software Revolution", Copenhagen, 45–57 (1977)
7342:
1046:
of expressions containing failing or divergent computations. Under strict evaluation, the evaluation of any term containing a failing subterm fails. For example, the expression:
587:
and was first introduced in their work on program transformation. Burstall, MacQueen and
Sannella then incorporated the polymorphic type checking from ML to produce the language
1202:(GADT's) can be implemented in a way that provides some of the benefits of dependently typed programming while avoiding most of its inconvenience. GADT's are available in the
3187:
708:). However, programming languages often cater to several programming paradigms, so programmers using "mostly imperative" languages may have utilized some of these concepts.
7291:
3736:
2998:
1391:, which are used in imperative programming to implement state and I/O. Pure functional programming completely prevents side-effects and provides referential transparency.
620:
1163:. These type systems do not have decidable type inference and are difficult to understand and program with. But dependent types can express arbitrary propositions in
7166:
4283:
1086:
to aid in such analysis. Harper 2009 proposes including both strict and lazy evaluation in the same language, using the language's type system to distinguish them.
761:
7441:
5582:
4874:
R.M. Burstall and J. Darlington. A transformation system for developing recursive programs. Journal of the
Association for Computing Machinery 24(1):44–67 (1977)
2224:
and lambdas are fully supported. Libraries and language extensions for immutable data structures are being developed to aid programming in the functional style.
7376:
3006:
785:
8112:
3805:
Haskell has a diverse range of use commercially, from aerospace and defense, to finance, to web startups, hardware design firms and lawnmower manufacturers.
276:. In addition, many other programming languages support programming in a functional style or have implemented features from functional programming, such as
5644:
4916:
4208:
3390:
7271:
5462:
2924:
Ciao transforms the function-like notation into relational form and executes the resulting logic program using the standard Prolog execution strategy.
3155:
6443:
729:
are functions that can either take other functions as arguments or return them as results. In calculus, an example of a higher-order function is the
7505:
4893:
3238:
842:
If a pure function is called with arguments that cause no side-effects, the result is constant with respect to that argument list (sometimes called
495:
245:
3092:, though initially intended as a research language, has also been applied in areas such as aerospace systems, hardware design and web programming.
2143:
It is possible to use a functional style of programming in languages that are not traditionally considered functional languages. For example, both
8105:
7855:
7717:
1042:
evaluation, concepts that refer to how function arguments are processed when an expression is being evaluated. The technical difference is in the
54:
7165:
4883:
R.M. Burstall, D.B. MacQueen and D.T. Sannella. HOPE: an experimental applicative language. Proc. 1980 LISP Conference, Stanford, 136–143 (1980).
6363:
3277:
966:(or "folds" and "unfolds") being the most obvious examples. Such recursion schemes play a role analogous to built-in control structures such as
8212:
8202:
7861:
3538:
6486:
6046:
6021:
1407:) achieve the same effect: they multiply all even numbers in an array by 10 and add them all, storing the final sum in the variable "result".
8260:
8217:
8207:
8197:
7264:
7085:
7024:
6042:
5864:
5620:
4579:
4166:
4009:
3891:
3243:
2127:
instruction, without the overhead of the loop controlling code. If an iterative operation writes to an array, the resulting array's elements
1879:" as efficiently as the underlying imperative operations. Consider, as an example, the following two ways to check if 5 is an even number in
1756:
952:
403:
4952:
4628:
automatically. To accomplish this, they had to invent a language and a paradigm that, viewed retrospectively, embeds functional programming.
3182:
teach functional programming. Some treat it as an introductory programming concept while others first teach imperative programming methods.
8174:
8046:
7794:
6424:
6726:
1355:
with constant access and update times is a basic component of most imperative languages, and many imperative data-structures, such as the
850:), i.e., calling the pure function again with the same arguments returns the same result. (This can enable caching optimizations such as
141:. When a pure function is called with some given arguments, it will always return the same result, and cannot be affected by any mutable
5440:
5201:
4801:
4754:
4707:
1854:
may also speed up the program, even asymptotically, whereas it may slow it down at most by a constant factor (however, it may introduce
1117:
1109:
487:
6580:
5431:
7514:
7181:
6245:
5225:
4937:
4512:
4477:
3860:
1819:
programming by the virtue of reducing or eliminating the risk of certain concurrency hazards, since concurrent operations are usually
399:
3458:
1101:
6639:
6504:
5515:
5484:
5456:
5144:
4615:
4191:
3616:
3002:
2245:
1404:
568:
467:
3509:
5972:
955:
will claim space back, allowing an unbounded number of active tail calls even though it does not turn tail recursion into a loop.
8189:
7886:
7566:
7510:
6261:
4618:
claims that he, Al Newell, and Cliff Shaw are "...commonly adjudged to be the parents of artificial intelligence ," for writing
3427:
3335:
3233:
1338:
870:
99:
3754:
835:(memory or I/O). This means that pure functions have several useful properties, many of which can be used to optimize the code:
8278:
8169:
7746:
7619:
7550:
7485:
7408:
6470:
3228:
1858:
if used improperly). Launchbury 1993 discusses theoretical issues related to memory leaks from lazy evaluation, and O'Sullivan
1199:
944:
437:
387:
95:
5119:
8283:
8249:
8164:
7924:
7687:
7317:
5094:
3100:
2235:
2202:
2186:
1876:
1690:
1388:
1326:
1152:
1148:
1061:
832:
663:
281:
221:
146:
8179:
7702:
7692:
7470:
4309:
3253:
3195:
3132:
3053:
3018:
2210:
2162:
1841:
1837:
1740:
1124:), as they reject all invalid programs at runtime when the information is enough to not reject valid programs. The use of
1121:
939:
611:
584:
545:
415:
297:
285:
209:
205:
201:
189:
126:
69:
6187:
5229:
4287:
3699:
Minsky, Yaron; Weeks, Stephen (July 2008). "Caml
Trading — experiences with functional programming on Wall Street".
1168:
8086:
8066:
7996:
7939:
7901:
7891:
7851:
7776:
7712:
7682:
7609:
7598:
7495:
7475:
7450:
7413:
6130:
5319:
Wells, J. B. (1993). "Typability and type checking in the second-order lambda-calculus are equivalent and undecidable".
3163:
3096:
2261:
2182:
1802:
1752:
1211:
1065:
1017:
920:
916:
903:
427:
423:
407:
376:
313:
150:
80:
5056:
8041:
7804:
7771:
7666:
7642:
7604:
7584:
7480:
7389:
7367:
7352:
3215:
3108:
3057:
2990:
2674:
2228:
2178:
2112:
2071:
1872:
1812:
1798:
857:
If there is no data dependency between two pure expressions, their order can be reversed, or they can be performed in
705:
656:
588:
572:
391:
317:
309:
305:
57:
4982:
3045:
1836:, where each actor is a container for state, behavior, child actors and a message queue). This approach is common in
7136:
7125:
4677:
Diehl, Stephan; Hartel, Pieter; Sestoft, Peter (2000). "Abstract machines for programming language implementation".
4341:
8238:
7988:
7974:
7881:
7841:
7766:
7672:
7652:
7519:
7398:
7332:
6990:
6853:
5507:
3997:
3124:
2221:
2158:
2119:. This means that using them imposes no additional runtime overhead. This is achieved thanks to the compiler using
1156:
932:
882:, add extra keywords for a programmer to explicitly mark external functions as pure, to enable such optimizations.
640:
580:
549:
455:
4124:
2280:
arguments, relations can be queried with any pattern of inputs and outputs. Consider the following logic program:
360:. Lambda calculus forms the basis of all functional programming languages. An equivalent theoretical formulation,
8081:
7846:
7756:
7736:
7722:
7200:
5806:
4792:
4745:
4698:
2166:
2085:
1670:
1372:
1013:
556:
532:
475:
301:
6821:
5652:
4215:
8061:
8021:
7964:
7896:
7634:
7465:
4653:
3402:
3357:
2253:
2144:
1776:
1772:
1736:
1233:
1223:
1203:
1192:
843:
576:
540:
491:
483:
410:
functions. Lisp first introduced many paradigmatic features of functional programming, though early Lisps were
241:
237:
233:
142:
84:
73:
5880:
4026:
414:, and incorporated support for numerous programming styles as new paradigms evolved. Later dialects, such as
8071:
8051:
7992:
7979:
7959:
7786:
7523:
7427:
7385:
7106:
6750:
2193:
standard library module. First-class functions have been introduced into other mainstream languages such as
1732:
1129:
1113:
879:
564:
406:(MIT). Lisp functions were defined using Church's lambda notation, extended with a label construct to allow
111:
61:
5079:
Proceedings of the ACM SIGPLAN 1998 conference on
Programming language design and implementation - PLDI '98
1871:
Some functional programming languages might not optimize abstractions such as higher order functions like "
8031:
8006:
8000:
7944:
7906:
7594:
7589:
7541:
7337:
7309:
7300:
6449:
5324:
4835:"Can programming be liberated from the von Neumann style?: A functional style and its algebra of programs"
3918:
de Moura, Leonardo; Ullrich, Sebastian (July 2021). "The Lean 4 Theorem Prover and
Programming Language".
1384:
1364:
1348:
1180:
1079:
1043:
701:
629:
434:
was designed to preserve and update the paradigmatic features of the numerous older dialects it replaced.
225:
154:
134:
77:
31:
6173:
The SICS Java Port
Project Automatic Translation of a Large Object Oriented System from Smalltalk to Java
5831:"Understanding The Actor Model To Build Non-blocking, High-throughput Distributed Systems - Scaleyourapp"
5177:
4901:
3488:
2955:
1329:. Functional programs exclusively use this type of function and are therefore referentially transparent.
7933:
7929:
7871:
7823:
7393:
7012:
4624:
3730:
2978:
1144:
1105:
1083:
730:
726:
721:
678:
65:
6796:
5758:
5528:
6150:
5563:"All About Monads: A comprehensive guide to the theory and practice of monadic programming in Haskell"
3076:, which was introduced in the mid-1990s, has seen commercial use in areas such as financial analysis,
2123:, where each iteration of a loop, be it imperative or using iterators, is converted into a standalone
839:
If the result of a pure expression is not used, it can be removed without affecting other expressions.
440:(IPL), 1956, is sometimes cited as the first computer-based functional programming language. It is an
8157:
8128:
8076:
8056:
8016:
7818:
7677:
7546:
7533:
7287:
7196:
6218:
5364:
4644:
4073:
3308:
2959:
2170:
1942:
1760:
1744:
1352:
1009:
989:
971:
861:
and they cannot interfere with one another (in other terms, the evaluation of any pure expression is
791:
717:
411:
365:
345:
130:
50:
46:
6483:
5734:
5035:
3545:
700:
A number of concepts and paradigms are specific to functional programming, and generally foreign to
8011:
7949:
7761:
7741:
7727:
7459:
7327:
7322:
6029:
5329:
3065:
2128:
2089:
2088:, which implements various higher-order functions common in functional programming languages using
1176:
1125:
1029:
985:
799:
395:
170:
119:
91:
4258:
3897:
3017:
Functional programming has been employed in a wide range of industrial applications. For example,
7828:
7781:
7751:
7697:
7556:
7455:
7347:
7256:
6972:
6940:
6849:
6412:
6394:
5995:
5716:
5100:
4815:
4768:
4721:
4585:
4539:
4459:
4451:
4386:
4378:
4148:
4095:
3718:
3658:
3300:
3033:
2174:
1816:
1172:
1164:
807:
648:
607:
451:
6428:
6059:
5406:
3036:
systems, but has since become popular for building a range of applications at companies such as
7251:
7247:
7243:
6506:
Scala at EDF Trading: Implementing a Domain-Specific
Language for Derivative Pricing with Scala
1280:
referentially transparent. In fact, assignment statements are never referentially transparent.
8152:
8147:
7984:
7876:
7731:
7707:
7647:
7614:
7576:
7561:
7500:
7081:
7020:
6635:
6386:
6241:
5860:
5782:
5616:
5511:
5452:
5360:
5090:
4611:
4575:
4187:
4162:
4152:
4005:
3933:
3612:
3085:
2276:
2124:
2101:
1768:
636:
463:
441:
361:
5148:
7866:
7798:
7662:
7403:
7008:
6586:
6416:
6378:
6126:
5987:
5708:
5606:
5444:
5264:
5205:
5160:
5082:
4846:
4805:
4758:
4711:
4657:
4603:
4567:
4531:
4494:
4443:
4370:
4077:
4049:"XML Programming Paradigms (part four): Functional Programming approached to XML processing"
3952:
3923:
3832:
3708:
3648:
3604:
3292:
3223:
3151:
3140:
3104:
2949:
2249:
1783:
1704:
Impure functional languages usually include a more direct method of managing mutable state.
1666:
1136:
frees the programmer from the need to manually declare types to the compiler in most cases.
579:. Also in Edinburgh in the 1970s, Burstall and Darlington developed the functional language
510:
197:
166:
38:
5807:"Concurrent Collections (The Java™ Tutorials > Essential Java Classes > Concurrency)"
5699:
Igor Pechtchanski; Vivek Sarkar (2005). "Immutability specification and its applications".
4516:
3866:
3831:. Third ACM SIGPLAN Conference on History of Programming Languages. San Diego, California.
3603:. Third ACM SIGPLAN Conference on History of Programming Languages. San Diego, California.
977:
Most general purpose functional programming languages allow unrestricted recursion and are
674:
for functional programming research; implementation releases have been ongoing as of 1990.
7916:
7790:
7656:
7357:
7040:
7035:
6915:
6490:
6338:
5947:
5193:
4987:
4158:
4048:
3464:
3248:
3167:
3135:'s Phoenix framework is also used by some relatively popular commercial projects, such as
3077:
3061:
3030:
2323:
The program can be queried, like a functional program, to generate mothers from children:
2242:
2217:
2132:
1952:
version 22 and Clojure version 1.11.1, the first implementation, which is implemented as:
1851:
1829:
1820:
1719:
have been developed to track side effects in programs. Some modern research languages use
1716:
1694:
1057:
1012:(nonterminating computations can be expressed only with infinite streams of values called
982:
978:
858:
735:
518:
357:
353:
329:
181:
6774:
6510:
6425:"Improving the world's most popular functional language: user-defined functions in Excel"
5382:
3790:
2189:" in 1994, as well as closures in Python 2.2, though Python 3 relegated "reduce" to the
1387:. The most significant differences stem from the fact that functional programming avoids
6493:// WhatsApp blog, 2012-01-06: "the last important piece of our infrastracture is Erlang"
3517:
548:. Backus's paper popularized research into functional programming, though it emphasized
7968:
7624:
7490:
6608:
6420:
6003:
4619:
4517:"Recursive functions of symbolic expressions and their computation by machine, Part I."
4406:
2198:
2120:
1845:
1344:
1160:
1140:
1133:
1001:
958:
Common patterns of recursion can be abstracted away using higher-order functions, with
948:
928:
811:
770:
652:
273:
265:
5268:
4259:"Functional Language Features: Iterators and Closures - The Rust Programming Language"
3826:
3572:
3433:
666:, developed by David Turner, initially appeared in 1985 and had a strong influence on
8272:
7954:
7114:
7062:
7047:
Felleisen, Matthias; Findler, Robert; Flatt, Matthew; Krishnamurthi, Shriram (2018).
7004:
5503:
4431:
3763:
3339:
3304:
3120:
2590:
The same definition in relational notation needs to be written in the unnested form:
1720:
1060:. Lazy evaluation is used by default in several pure functional languages, including
993:
967:
828:
823:
671:
625:
615:
603:
369:
337:
333:
138:
115:
6894:
6398:
6234:
5999:
5720:
5477:
5298:
5104:
4819:
4772:
4589:
4463:
4342:"Documentation for package java.util.function since Java 8 (also known as Java 1.8)"
3722:
670:. With Miranda being proprietary, Haskell began with a consensus in 1987 to form an
17:
8142:
6553:
5123:
4921:
4725:
4543:
4390:
3601:
Proceedings of the third ACM SIGPLAN conference on History of programming languages
3136:
3116:
2963:
2944:
for writing plugins. The original author of the most popular Emacs implementation,
2257:
1930:
1801:
distinguishes itself by its approach to data immutability which involves immutable
1078:
argues for lazy evaluation as a mechanism for improving program modularity through
1005:
959:
659:
and has influenced the development of subsequent functional programming languages.
560:
536:
506:
502:
158:
103:
5255:
Huet, Gérard P. (1973). "The Undecidability of Unification in Third Order Logic".
3976:
3662:
1179:. While these languages are mainly of interest in academic research (including in
591:. ML eventually developed into several dialects, the most common of which are now
552:
rather than the lambda-calculus style now associated with functional programming.
430:, sought to simplify and rationalise Lisp around a cleanly functional core, while
8097:
7164:
6471:"Sim-Diasca: a large-scale discrete event concurrent simulation engine in Erlang"
5610:
5562:
5024:. International Organization for Standardization. July 6, 2017. pp. 336–338.
4481:
3928:
1966:"Returns true if n is even, throws an exception if n is not an integer"
1056:
The usual implementation strategy for lazy evaluation in functional languages is
7836:
6968:
6845:
5200:. Symposium on Principles of Programming Languages. Charleston, South Carolina:
5018:
4917:"Developers love trendy new languages but earn more with functional programming"
4317:
3209:
3112:
2994:
2974:
2673:
However, the difference between the two representations is simply syntactic. In
1855:
1833:
1712:
1360:
1214:, and have been proposed as additions to other languages including Java and C#.
1171:, then, well-typed programs in these languages become a means of writing formal
1095:
997:
963:
862:
851:
847:
596:
528:
471:
431:
383:
to all terms. This forms the basis for statically typed functional programming.
349:
341:
185:
6314:
3977:"The useR! 2006 conference schedule includes papers on the commercial use of R"
1367:
or random access lists, which admit purely functional implementation, but have
1325:
transparent, as it does not implicitly change the input x and thus has no such
494:, which is used commercially in financial industries along with its descendant
7210:
6382:
6112:
5991:
5238:
4558:
4240:
4101:
3822:
3713:
3273:
3205:
3179:
3143:(one of the biggest e-commerce platforms in Poland)'s classified ads platform
3131:
are some of the functional frontend programming languages used in production.
3128:
3095:
Other functional programming languages that have seen use in industry include
2941:
2154:
2148:
1731:
Functional programming languages are typically less efficient in their use of
1356:
924:
883:
764:
229:
6390:
6195:
6087:
5164:
4662:
4639:
3937:
7225:
5948:"Comparing Performance: Loops vs. Iterators - The Rust Programming Language"
5448:
5019:"ISO/IEC JTC 1/SC 22/WG5/N2137 – Fortran 2015 Committee Draft (J3/17-007r2)"
4957:
4557:
Guy L. Steele; Richard P. Gabriel (February 1996). "The evolution of Lisp".
3836:
3653:
3636:
3608:
3278:"Conception, evolution, and application of functional programming languages"
3069:
2945:
2104:
profile, which can be attributed to various compiler optimizations, such as
1790:
solve this issue by implementing mechanisms for safe memory sharing between
1368:
912:
908:
479:
380:
162:
107:
6680:
5924:"Go Wiki: Compiler And Runtime Optimizations - The Go Programming Language"
4571:
3162:
variations in finance, these systems are sometimes considered related to a
2966:, which are also the core feature of the Lisp programming language family.
2677:
Prolog, relations can be nested, like functions in functional programming:
7184:
was created from a revision of this article dated 25 August 2011
5345:
5210:
5086:
4993:
4851:
4834:
4810:
4787:
4763:
4740:
4716:
4693:
4535:
4498:
513:
for a functional programming language, described a correspondence between
356:
are equivalent models of computation, showing that the lambda calculus is
7096:
6727:"ALLEGRO - all you need to know about the best Polish online marketplace"
4741:"A correspondence between ALGOL 60 and Church's Lambda-notation: part II"
3198:
has been a relatively popular choice for teaching programming for years.
3049:
3041:
3026:
2105:
1764:
1188:
1184:
919:
invoke themselves, letting an operation be repeated until it reaches the
803:
682:
514:
177:
6874:
5859:(1st ed.). O'Reilly Media, Inc. (published 2009-06-11). p. 6.
5830:
3922:. Conference on Automated Deduction. Vol. 12699. pp. 625–635.
3296:
2206:
1823:
and this allows eliminating the need for locks. This is how for example
277:
6902:
6151:"functools — Higher order functions and operations on callable objects"
5923:
5077:
Clinger, William (1998). "Proper tail recursion and space efficiency".
4455:
4382:
3089:
2064:
has the mean execution time of 4.76 ms, while the second one, in which
1880:
1787:
1705:
1686:
1069:
667:
419:
217:
193:
7124:. Vol. 4 of Handbook of Programming Languages. Indianapolis, Indiana:
6877:. Department of Electrical Engineering and Computer Sciences, Berkeley
6655:
5783:"Validating References with Lifetimes - The Rust Programming Language"
5675:"Which programs are fastest? | Computer Language Benchmarks Game"
4694:"Correspondence between ALGOL 60 and Church's Lambda-notation: part I"
2473:
It can even be used to generate all instances of the mother relation:
6532:
4027:"The Functional Programming Language XSLT — A proof through examples"
3037:
3022:
2997:
publication venues focusing on functional programming, including the
2989:
Functional programming is an active area of research in the field of
249:
5712:
4447:
4374:
692:
Functional programming continues to be used in commercial settings.
6701:
6289:
Daniel Friedman; William Byrd; Oleg Kiselyov; Jason Hemann (2018).
5120:"CONS Should Not CONS Its Arguments, Part II: Cheney on the M.T.A."
129:, a subset of functional programming which treats all functions as
6631:
5551:
Michael Barr, Charles Well - Category theory for computer science.
3081:
3073:
2937:
2248:
are expressible in functional programming terms: for example, the
1938:
1748:
1207:
1104:
in the 1970s, functional programming languages have tended to use
592:
522:
272:
use some elements of functional programming, such as not allowing
213:
7078:
An Introduction to Functional Programming Through Lambda Calculus
5857:
Erlang programming: a concurrent approach to software development
5057:"Revised^6 Report on the Algorithmic Language Scheme - Rationale"
1108:, rejecting all invalid programs at compilation time and risking
6976:
6857:
5529:"polymatheia - Understanding Clojure's Persistent Vector, pt. 1"
5433:
Generalized Algebraic Data Types and Object-Oriented Programming
3159:
1945:
1934:
1371:
access and update times. Purely functional data structures have
1116:, that accepts all valid programs at compilation time and risks
686:
289:
269:
253:
8101:
7260:
5902:
2081:
125:
Functional programming is sometimes treated as synonymous with
7000:. Volume I. North-Holland Publishing Company, Amsterdam, 1958.
6073:
4241:"GopherCon 2020: Dylan Meeus - Functional Programming with Go"
4097:
Functional Programming with C# - Simon Painter - NDC Oslo 2020
2194:
1949:
911:(looping) in functional languages is usually accomplished via
293:
261:
257:
27:
Programming paradigm based on applying and composing functions
7162:
4971:
Sean Tull - Monoidal Categories for Formal Concept Analysis.
3064:
computers and has been applied to problems such as training-
1034:
Functional languages can be categorized by whether they use
677:
More recently it has found use in niches such as parametric
444:
for manipulating lists of symbols. It does have a notion of
6996:
Curry, Haskell Brooks and Feys, Robert and Craig, William.
6088:"First-Class Functions in Go - The Go Programming Language"
3676:
2092:. In a benchmark provided by the library's author, calling
1276:
gives a program a different meaning, and so the expression
94:, meaning that they can be bound to names (including local
5759:"References and Borrowing - The Rust Programming Language"
4361:
Turing, A. M. (1937). "Computability and λ-definability".
3060:, was used as the basis for several applications on early
2952:
considers Lisp one of his favorite programming languages.
1159:, which lets types depend on terms. Such types are called
6941:"What Is Scheme & Why Is it Beneficial for Students?"
5284:
Resolution d'Equations dans des Langages d'Ordre 1,2,...ω
3953:"An introduction to functional programming in JavaScript"
3154:
optimizations but also for regulatory frameworks such as
1811:
Immutable data with separation of identity and state and
3893:
The First Substantial Line of Business Application in F#
2252:
simply dictates use of a higher-order function, and the
647:
type theory), which associated functional programs with
7095:
O'Sullivan, Brian; Stewart, Don; Goerzen, John (2008).
5971:
Hartel, Pieter; Henk Muller; Hugh Glaser (March 2004).
4434:(1940). "A Formulation of the Simple Theory of Types".
4080:(1974). "SEQUEL: A structured English query language".
3483:
3481:
1395:
a new list by applying the function to each list item.
7226:"defmacro – Functional Programming For The Rest of Us"
7048:
6232:
Bloch, Joshua (2008). "Item 15: Minimize Mutability".
5180:. Simon Peyton Jones, published by Prentice Hall, 1987
5178:
The Implementation of Functional Programming Languages
4125:"Functional programming - Kotlin Programming Language"
2940:, a highly extensible text editor family uses its own
1183:), they have begun to be used in engineering as well.
6777:. University of Oxford Department of Computer Science
5036:"Revised^6 Report on the Algorithmic Language Scheme"
3885:
3883:
1815:
schemes can also potentially be more well-suited for
773:
738:
5701:
Concurrency and Computation: Practice and Experience
4953:"Is functional programming better for your startup?"
3825:; Hughes, J.; Jones, S. P.; Wadler, P. (June 2007).
3330:
3328:
3029:
in the late 1980s, was originally used to implement
1546:
Functional programming with higher-order functions:
1139:
Some research-oriented functional languages such as
379:, which extended the lambda calculus by assigning a
90:
In functional programming, functions are treated as
8188:
8135:
8030:
7915:
7817:
7633:
7575:
7532:
7435:
7426:
7366:
7308:
7299:
5430:Kennedy, Andrew; Russo, Claudio V. (October 2005).
5365:"Simple unification-based type inference for GADTs"
3785:
3783:
3599:Armstrong, Joe (June 2007). "A history of Erlang".
3188:
Structure and Interpretation of Classical Mechanics
2075:
2065:
1284:
1252:, then two consecutive evaluations of the variable
6233:
5677:. benchmarksgame.alioth.debian.org. Archived from
4405:
3391:"Programming a Text Editor in MacScheme+Toolsmith"
3166:. Functional programming is heavily influenced by
2999:International Conference on Functional Programming
2139:Functional programming in non-functional languages
1363:, are based on arrays. Arrays can be replaced by
1347:are often represented in a different way to their
1240:, this changes the value assigned to the variable
810:as the addition operator partially applied to the
779:
755:
632:, features that encourage functional programming.
490:, who had previously worked with Iverson, created
6978:Structure and Interpretation of Computer Programs
6859:Structure and Interpretation of Computer Programs
6799:. Imperial College London Department of Computing
6582:Functional Programming in Communications Security
5188:
5186:
621:Structure and Interpretation of Computer Programs
7111:Programming Languages: Design and Implementation
6816:
6814:
5308:. LNCS. Vol. 2410. Springer. pp. 3–12.
5306:Proceedings, 15th International Conference TPHOL
4002:Programming with Data: A Guide to the S Language
3594:
3592:
3510:"Functional vs. Procedural Programming Language"
3489:"Wolfram Language Guide: Functional Programming"
3384:
3382:
6751:"Websites using Phoenix Framework - Wappalyzer"
6609:"Live Production Clojure Application Announced"
5304:. In Carreño, V.; Muñoz, C.; Tahar, S. (eds.).
5231:Practical Foundations for Programming Languages
1723:to make the presence of side effects explicit.
923:. In general, recursion requires maintaining a
539:lecture "Can Programming Be Liberated From the
458:in the early 1960s, described in his 1962 book
118:style, where small functions are combined in a
3854:
3852:
3735:: CS1 maint: DOI inactive as of August 2024 (
2173:from their inception. Python had support for "
1383:Functional programming is very different from
1195:that is written in Coq and formally verified.
790:Higher-order functions are closely related to
624:. Scheme was the first dialect of lisp to use
8113:
7272:
6060:"Functions — D Programming Language 2.0"
5855:Cesarini, Francesco; Thompson, Simon (2009).
5286:(Ph.D.) (in French). Universite de Paris VII.
4938:"The stealthy rise of functional programming"
3694:
3692:
3630:
3628:
3567:
3565:
3351:
3349:
3007:Symposium on Trends in Functional Programming
1755:are only slightly slower than C according to
1735:and memory than imperative languages such as
992:, and generally requires the introduction of
947:intentionally maintains a stack and lets the
260:. Domain-specific declarative languages like
110:can. This allows programs to be written in a
8:
7133:Haskell: The Craft of Functional Programming
5359:Peyton Jones, Simon; Vytiniotis, Dimitrios;
5013:
5011:
3817:
3815:
3813:
3748:
3746:
878:external functions. Some compilers, such as
375:Church later developed a weaker system, the
7070:Functional Programming: Practice and Theory
6131:"Origins of Python's "Functional" Features"
3828:A history of Haskell: being lazy with class
3452:
3450:
3115:and Clojure. Scala has been widely used in
996:into the logic expressed by the language's
76:to other values, rather than a sequence of
64:paradigm in which function definitions are
8120:
8106:
8098:
7432:
7305:
7279:
7265:
7257:
7122:Functional and Logic Programming Languages
7019:. Vol. II. Amsterdam: North Holland.
6916:"Why Scheme for Introductory Programming?"
6022:"Functional programming in Python, Part 3"
5645:"Implementing Persistent Vectors in Scala"
4640:"The mechanical evaluation of expressions"
4404:Haskell Brooks Curry; Robert Feys (1958).
4369:(4). Cambridge University Press: 153–163.
4284:"Cleaner code with functional programming"
3573:"Who uses Erlang for product development?"
3421:
3419:
2958:, since version 24.03 supports previewing
1779:) were designed with speed optimizations.
935:during compiling, among other approaches.
394:, was developed in the late 1950s for the
7343:Programming in the large and in the small
6840:
6838:
5735:"An In-Depth Look at Clojure Collections"
5328:
5299:"Higher Order Unification 30 years later"
5209:
4850:
4809:
4762:
4715:
4661:
3927:
3712:
3652:
3156:Comprehensive Capital Analysis and Review
2070:is a direct invocation of the underlying
2053:"Argument must be an integer: "
1685:The pure functional programming language
1198:A limited form of dependent types called
1120:, used in Lisp and its variants (such as
1000:. Some special purpose languages such as
772:
742:
737:
30:For subroutine-oriented programming, see
7192:, and does not reflect subsequent edits.
7175:
7113:. 3rd ed. Englewood Cliffs, New Jersey:
6153:. Python Software Foundation. 2011-07-31
5881:"Chapter 25. Profiling and optimization"
3920:Lecture Notes in Artificial Intelligence
3516:. University of Colorado. Archived from
3239:List of functional programming languages
2129:will be stored in specific CPU registers
176:Functional programming has its roots in
106:from other functions, just as any other
6945:IMACS – Making Better Thinkers for Life
5198:A Natural Semantics for Lazy Evaluation
3577:Frequently asked questions about Erlang
3265:
1403:The following two examples (written in
1283:Now, consider another function such as
1244:. Let us say that the initial value of
6987:The Functional Approach to Programming
5583:"Thirteen ways of looking at a turtle"
4622:, a program that proved theorems from
3728:
3539:"State-Based Scripting in Uncharted 2"
1075:
712:First-class and higher-order functions
5153:Journal of Universal Computer Science
4983:"Functional Programming Comes of Age"
4560:History of programming languages---II
4493:. Los Angeles, CA. pp. 173–185.
4209:"Python Metaclasses: Who? Why? When?"
4119:
4117:
3429:Terrorism Response Training in Scheme
3244:List of functional programming topics
1757:The Computer Language Benchmarks Game
1399:Imperative vs. functional programming
404:Massachusetts Institute of Technology
7:
6364:"Spreadsheet functional programming"
6291:The Reasoned Schemer, Second Edition
6262:"Object.freeze() - JavaScript | MDN"
5478:"Why Functional Programming Matters"
4788:"The next 700 programming languages"
4530:(4). ACM New York, NY, US: 184–195.
4282:Vanderbauwhede, Wim (18 July 2020).
4082:Proceedings of the 1974 ACM SIGFIDET
3340:"Why Functional Programming Matters"
1379:Comparison to imperative programming
1100:Especially since the development of
470:). APL was the primary influence on
352:proved that the lambda calculus and
6775:"Functional Programming: 2019-2020"
6656:"Why developers like ClojureScript"
6555:Building a Startup with Standard ML
6240:(Second ed.). Addison-Wesley.
5344:Leroy, Xavier (17 September 2018).
4894:"Make discovering assign() easier!"
4802:Association for Computing Machinery
4755:Association for Computing Machinery
4708:Association for Computing Machinery
4692:Landin, Peter J. (February 1965a).
4004:. Springer Verlag. pp. 67–70.
3637:"Erlang for concurrent programming"
3084:programming and static analysis of
2151:explicitly support pure functions.
1175:from which a compiler can generate
1024:Strict versus non-strict evaluation
7076:Michaelson, Greg (10 April 2013).
6607:Lorimer, R. J. (19 January 2009).
6445:Functional Programming at Facebook
6217:Williams, Michael (8 April 2013).
5643:Spiewak, Daniel (26 August 2008).
5363:; Geoffrey Washburn (April 2006).
4679:Future Generation Computer Systems
4412:. North-Holland Publishing Company
2977:can be considered a form of pure,
951:. However, when this happens, its
886:also lets functions be designated
478:. In the early 1990s, Iverson and
149:. This is in contrast with impure
49:where programs are constructed by
25:
6985:Cousineau, Guy and Michel Mauny.
6371:Journal of Functional Programming
6062:. Digital Mars. 30 December 2012.
5980:Journal of Functional Programming
5499:Purely functional data structures
5485:Chalmers University of Technology
5439:. OOPSLA. San Diego, California:
4936:John Leonard (January 24, 2017).
4681:. Vol. 16. pp. 739–751.
3701:Journal of Functional Programming
3677:"The Elixir Programming Language"
3003:Journal of Functional Programming
2256:pattern roughly corresponds to a
2080:, so let's take for instance the
2020:clojure.lang.RT/uncheckedLongCast
1759:. For programs that handle large
1264:respectively. Clearly, replacing
390:functional programming language,
7887:Partitioned global address space
7240:Functional programming in Python
7174:
7061:. Englewood Cliffs, New Jersey:
6875:"Computer Science 61A, Berkeley"
6822:"Computer Science BSc - Modules"
6702:"Why developers like PureScript"
5346:"The Compcert verified compiler"
4786:Landin, Peter J. (March 1966b).
4739:Landin, Peter J. (March 1965b).
4491:History of Programming Languages
3234:Inductive functional programming
3208:
2096:is 4% slower than an equivalent
1339:Purely functional data structure
1200:generalized algebraic data types
894:keyword with similar semantics.
655:. This led to new approaches to
7224:Akhmechet, Slava (2006-06-19).
6854:"Preface to the Second Edition"
6192:James Gosling: on the Java Road
4915:Peter Bright (March 13, 2018).
4100:, 8 August 2021, archived from
3229:Functional reactive programming
2272:Comparison to logic programming
1351:counterparts. For example, the
438:Information Processing Language
8129:Types of programming languages
7137:Addison-Wesley Longman Limited
7126:Macmillan Technical Publishing
6895:Emmanuel Schanzer of Bootstrap
6725:Team, Editorial (2019-01-08).
6679:Herrick, Justin (2024-04-29),
6219:"Java SE 8 Lambda Quick Start"
6111:Eich, Brendan (3 April 2008).
5615:. Cambridge University Press.
5149:"Total Functional Programming"
2111:One distinguishing feature of
1771:functional languages (such as
798:Higher-order functions enable
662:The lazy functional language,
1:
5973:"The Functional C experience"
5901:Berthe, Samuel (2024-04-29),
5612:ML for the Working Programmer
5269:10.1016/s0019-9958(73)90301-x
4363:The Journal of Symbolic Logic
4184:Functional Programming in PHP
3756:Some uses of Caml in Industry
3254:Purely functional programming
3158:. Given the use of OCaml and
3021:, which was developed by the
1410:Traditional imperative loop:
1102:Hindley–Milner type inference
546:principle of compositionality
127:purely functional programming
8261:Programming paradigms navbox
7414:Uniform Function Call Syntax
3929:10.1007/978-3-030-79876-5_37
3358:"MultiTasking and MacScheme"
3164:categorical abstract machine
1711:Alternative methods such as
1018:total functional programming
904:Recursion (computer science)
377:simply-typed lambda calculus
332:, developed in the 1930s by
7882:Parallel programming models
7856:Concurrent constraint logic
6939:Staff, IMACS (2011-06-03).
6897:interviewed on the TV show
6585:. CUFP 2007. Archived from
6509:. CUFP 2009. Archived from
6448:. CUFP 2009. Archived from
6074:"Lua Unofficial FAQ (uFAQ)"
5883:. Book.realworldhaskell.org
3979:. R-project.org. 2006-06-08
3896:. CUFP 2009. Archived from
3865:. CUFP 2008. Archived from
3762:. CUFP 2007. Archived from
3463:. CUFP 2006. Archived from
3432:. CUFP 2007. Archived from
3216:Computer programming portal
2991:programming language theory
2396:But it can also be queried
1229:referentially transparent.
988:, can cause unsoundness of
706:object-oriented programming
657:interactive theorem proving
398:of scientific computers by
248:in financial analysis, and
8300:
7975:Metalinguistic abstraction
7842:Automatic mutual exclusion
6991:Cambridge University Press
6442:Piro, Christopher (2009).
6171:Skarsaune, Martin (2008).
5508:Cambridge University Press
4951:Leo Cheung (May 9, 2017).
3862:Quantitative Finance in F#
3635:Larson, Jim (March 2009).
3514:Department of Applied Math
1336:
1221:
1157:intuitionistic type theory
1093:
1027:
933:continuation passing style
901:
821:
715:
641:intuitionistic type theory
585:Kleene Recursion Equations
550:function-level programming
29:
7847:Choreographic programming
6873:John DeNero (Fall 2019).
6797:"Programming I (Haskell)"
6579:Laurikari, Ville (2007).
6383:10.1017/S0956796806006186
5992:10.1017/S0956796803004817
5282:Huet, Gérard (Sep 1976).
4839:Communications of the ACM
4793:Communications of the ACM
4746:Communications of the ACM
4699:Communications of the ACM
4638:Landin, Peter J. (1964).
4524:Communications of the ACM
4436:Journal of Symbolic Logic
3951:Banz, Matt (2017-06-27).
3714:10.1017/S095679680800676X
3641:Communications of the ACM
3389:Hartheimer, Anne (1987).
3080:verification, industrial
2044:IllegalArgumentException.
831:(or expressions) have no
7897:Relativistic programming
6862:(2 ed.). MIT Press.
6626:Bugnion, Pascal (2016).
6362:Wakeling, David (2007).
6194:. Oracle. Archived from
5165:10.3217/jucs-010-07-0751
4654:British Computer Society
4182:Holywell, Simon (2014).
3859:Mansell, Howard (2008).
2679:
2592:
2552:
2475:
2402:
2400:, to generate children:
2325:
2282:
1954:
1885:
1832:mechanisms (such as the
1548:
1412:
1224:Referential transparency
1218:Referential transparency
1204:Glasgow Haskell Compiler
1169:Curry–Howard isomorphism
844:referential transparency
577:University of St Andrews
422:, and offshoots such as
412:multi-paradigm languages
372:in the 1920s and 1930s.
169:, and be more suited to
7107:Marvin Victor Zelkowitz
7105:Pratt, Terrence W. and
7080:. Courier Corporation.
7072:. Addison-Wesley, 1990.
6731:E-commerce Germany News
6315:"How I do my Computing"
5527:L’orange, Jean Niklas.
5449:10.1145/1094811.1094814
5257:Information and Control
3837:10.1145/1238844.1238856
3717:(inactive 2024-08-12).
3654:10.1145/1467247.1467263
3609:10.1145/1238844.1238850
1817:concurrent and parallel
1130:test-driven development
1114:untyped lambda calculus
571:developed the language
565:University of Edinburgh
442:assembly-style language
62:declarative programming
8279:Functional programming
7907:Structured concurrency
7292:Comparison by language
7170:
7150:Listen to this article
7050:How to Design Programs
6628:Scala for Data Science
6533:"Beating the Averages"
6503:Momtahan, Lee (2009).
5587:fF# for fun and profit
5407:"Algebraic Data Types"
4663:10.1093/comjnl/6.4.308
4572:10.1145/234286.1057818
3356:Clinger, Will (1987).
2117:zero-cost abstractions
2100:loop and has the same
1689:implements them using
1671:Greenspun's tenth rule
1385:imperative programming
1193:C programming language
1181:formalized mathematics
1080:separation of concerns
1044:denotational semantics
781:
757:
727:Higher-order functions
702:imperative programming
685:language built on the
630:tail-call optimization
618:and the 1985 textbook
614:, as described in the
525:programming language.
460:A Programming Language
155:imperative programming
43:functional programming
32:Procedural programming
8284:Programming paradigms
8250:Programming languages
7872:Multitier programming
7688:Interface description
7288:Programming paradigms
7211:"Functional thinking"
7169:
7033:Dominus, Mark Jason.
6682:jah2488/elm-companies
6531:Graham, Paul (2003).
6266:developer.mozilla.org
5297:Huet, Gérard (2002).
5211:10.1145/158511.158618
5118:Baker, Henry (1994).
5087:10.1145/277650.277719
4852:10.1145/359576.359579
4811:10.1145/365230.365257
4764:10.1145/363791.363804
4717:10.1145/363744.363749
4625:Principia Mathematica
4536:10.1145/367177.367199
4499:10.1145/800025.808387
4074:Chamberlin, Donald D.
3791:"Haskell in industry"
3285:ACM Computing Surveys
3046:Électricité de France
2171:first class functions
1805:and a concept called
1763:and multidimensional
1236:assignment statement
1118:false negative errors
1110:false positive errors
1106:typed lambda calculus
1084:operational semantics
792:first-class functions
782:
758:
731:differential operator
722:Higher-order function
7201:More spoken articles
7068:MacLennan, Bruce J.
6552:Sims, Steve (2006).
6484:1 million is so 2011
5655:on 23 September 2015
5204:. pp. 144–154.
5081:. pp. 174–185.
4645:The Computer Journal
4566:. pp. 233–330.
4025:Novatchev, Dimitre.
3890:Peake, Alex (2009).
3260:Notes and references
2993:. There are several
2595:maternal_grandmother
2555:maternal_grandmother
2133:constant-time access
1825:java.util.concurrent
1191:for a subset of the
1112:, as opposed to the
1010:strongly normalizing
990:equational reasoning
972:imperative languages
771:
763:, which returns the
756:{\displaystyle d/dx}
736:
718:First-class function
486:. In the mid-1990s,
346:function application
180:, evolving from the
92:first-class citizens
47:programming paradigm
18:Functional languages
8012:Self-modifying code
7620:Probabilistic logic
7551:Functional reactive
7506:Expression-oriented
7460:Partial application
7135:. Harlow, England:
7013:Seldin, Jonathan P.
6973:Sussman, Gerald Jay
6850:Sussman, Gerald Jay
6413:Peyton Jones, Simon
5411:Scala Documentation
4833:Backus, J. (1978).
4247:. 22 December 2020.
4207:The Cain Gang Ltd.
3401:(1). Archived from
3297:10.1145/72551.72554
3066:simulation software
1948:2.11.2, running on
1173:mathematical proofs
1126:algebraic datatypes
1030:Evaluation strategy
917:Recursive functions
800:partial application
649:constructive proofs
583:. NPL was based on
521:, and proposed the
396:IBM 700/7000 series
364:, was developed by
318:Java (since Java 8)
171:formal verification
7925:Attribute-oriented
7698:List comprehension
7643:Algebraic modeling
7456:Anonymous function
7348:Design by contract
7318:Jackson structures
7242:(by David Mertz):
7171:
7098:Real World Haskell
6755:www.wappalyzer.com
6489:2014-02-19 at the
6026:IBM developerWorks
5361:Weirich, Stephanie
4053:IBM developerWorks
3276:(September 1989).
3034:telecommunications
1941:GNU/Linux PC in a
1343:Purely functional
1165:higher-order logic
1008:recursion and are
981:, which makes the
808:successor function
777:
753:
608:Gerald Jay Sussman
555:The 1973 language
501:In the mid-1960s,
452:Kenneth E. Iverson
8239:Computer language
8226:
8225:
8095:
8094:
7985:Program synthesis
7877:Organic computing
7813:
7812:
7718:Non-English-based
7693:Language-oriented
7471:Purely functional
7422:
7421:
7167:
7131:Thompson, Simon.
7087:978-0-486-28029-5
7036:Higher-Order Perl
7026:978-0-7204-2208-5
7017:Combinatory Logic
7009:Hindley, J. Roger
7005:Curry, Haskell B.
6998:Combinatory Logic
6989:. Cambridge, UK:
6417:Burnett, Margaret
6127:van Rossum, Guido
5952:doc.rust-lang.org
5866:978-0-596-55585-6
5787:doc.rust-lang.org
5763:doc.rust-lang.org
5622:978-0-521-56543-1
5607:Paulson, Larry C.
5321:Tech. Rep. 93-011
4608:Models of My Life
4581:978-0-201-89502-5
4408:Combinatory Logic
4310:"Effective Scala"
4263:doc.rust-lang.org
4168:978-1-55860-701-9
4154:Higher-Order Perl
4078:Boyce, Raymond F.
4011:978-0-387-98503-9
3998:Chambers, John M.
3145:Allegro Lokalnie.
3086:embedded software
2277:Logic programming
2218:anonymous classes
1727:Efficiency issues
1667:off-by-one errors
1040:non-strict (lazy)
953:garbage collector
780:{\displaystyle f}
366:Moses Schönfinkel
362:combinatory logic
83:which update the
16:(Redirected from
8291:
8265:
8259:
8254:
8248:
8243:
8237:
8122:
8115:
8108:
8099:
7997:by demonstration
7902:Service-oriented
7892:Process-oriented
7867:Macroprogramming
7852:Concurrent logic
7723:Page description
7713:Natural language
7683:Grammar-oriented
7610:Nondeterministic
7599:Constraint logic
7501:Point-free style
7496:Functional logic
7433:
7404:Immutable object
7323:Block-structured
7306:
7281:
7274:
7267:
7258:
7235:
7233:
7232:
7220:
7218:
7217:
7191:
7189:
7178:
7177:
7168:
7158:
7156:
7151:
7120:Salus, Peter H.
7102:
7091:
7059:ANSI Common LISP
7054:
7030:
6982:
6955:
6954:
6952:
6951:
6936:
6930:
6929:
6927:
6926:
6920:home.adelphi.edu
6912:
6906:
6892:
6886:
6885:
6883:
6882:
6870:
6864:
6863:
6842:
6833:
6832:
6830:
6828:
6818:
6809:
6808:
6806:
6804:
6793:
6787:
6786:
6784:
6782:
6771:
6765:
6764:
6762:
6761:
6747:
6741:
6740:
6738:
6737:
6722:
6716:
6715:
6713:
6712:
6698:
6692:
6691:
6690:
6689:
6676:
6670:
6669:
6667:
6666:
6652:
6646:
6645:
6630:(1st ed.).
6623:
6617:
6616:
6604:
6598:
6597:
6595:
6594:
6576:
6570:
6569:
6567:
6566:
6560:
6549:
6543:
6542:
6540:
6539:
6528:
6522:
6521:
6519:
6518:
6500:
6494:
6481:
6475:
6474:
6473:. November 2011.
6467:
6461:
6460:
6458:
6457:
6439:
6433:
6432:
6427:. Archived from
6409:
6403:
6402:
6368:
6359:
6353:
6352:
6350:
6349:
6343:helix-editor.com
6335:
6329:
6328:
6326:
6325:
6311:
6305:
6301:
6295:
6294:
6293:. The MIT Press.
6286:
6280:
6279:
6273:
6272:
6258:
6252:
6251:
6239:
6229:
6223:
6222:
6214:
6208:
6207:
6205:
6203:
6186:Gosling, James.
6183:
6177:
6176:
6168:
6162:
6161:
6159:
6158:
6147:
6141:
6140:
6138:
6137:
6123:
6117:
6116:
6108:
6102:
6101:
6099:
6098:
6084:
6078:
6077:
6070:
6064:
6063:
6056:
6050:
6040:
6038:
6037:
6028:. Archived from
6017:
6015:
6014:
6008:
6002:. Archived from
5977:
5968:
5962:
5961:
5959:
5958:
5944:
5938:
5937:
5935:
5934:
5920:
5914:
5913:
5912:
5911:
5898:
5892:
5891:
5889:
5888:
5877:
5871:
5870:
5852:
5846:
5845:
5843:
5842:
5835:scaleyourapp.com
5827:
5821:
5820:
5818:
5817:
5803:
5797:
5796:
5794:
5793:
5779:
5773:
5772:
5770:
5769:
5755:
5749:
5748:
5746:
5745:
5731:
5725:
5724:
5707:(5–6): 639–662.
5696:
5690:
5689:
5687:
5686:
5671:
5665:
5664:
5662:
5660:
5651:. Archived from
5640:
5634:
5633:
5631:
5629:
5609:(28 June 1996).
5603:
5597:
5596:
5594:
5593:
5579:
5573:
5572:
5570:
5569:
5558:
5552:
5549:
5543:
5542:
5540:
5539:
5524:
5518:
5495:
5489:
5488:
5482:
5473:
5467:
5466:
5461:. Archived from
5438:
5427:
5421:
5420:
5418:
5417:
5403:
5397:
5396:
5394:
5393:
5379:
5373:
5372:
5356:
5350:
5349:
5341:
5335:
5334:
5332:
5316:
5310:
5309:
5303:
5294:
5288:
5287:
5279:
5273:
5272:
5252:
5246:
5245:
5243:
5237:. Archived from
5236:
5226:Robert W. Harper
5222:
5216:
5215:
5213:
5194:Launchbury, John
5190:
5181:
5175:
5169:
5168:
5141:
5135:
5134:
5132:
5131:
5115:
5109:
5108:
5074:
5068:
5067:
5065:
5064:
5053:
5047:
5046:
5044:
5043:
5032:
5026:
5025:
5023:
5015:
5006:
5005:
5003:
5001:
4992:. Archived from
4981:Pountain, Dick.
4978:
4972:
4969:
4963:
4962:
4948:
4942:
4941:
4933:
4927:
4926:
4912:
4906:
4905:
4900:. Archived from
4890:
4884:
4881:
4875:
4872:
4866:
4863:
4857:
4856:
4854:
4830:
4824:
4823:
4813:
4783:
4777:
4776:
4766:
4736:
4730:
4729:
4719:
4689:
4683:
4682:
4674:
4668:
4667:
4665:
4635:
4629:
4604:Herbert A. Simon
4600:
4594:
4593:
4565:
4554:
4548:
4547:
4521:
4509:
4503:
4502:
4488:
4474:
4468:
4467:
4428:
4422:
4421:
4419:
4417:
4411:
4401:
4395:
4394:
4358:
4352:
4351:
4349:
4348:
4338:
4332:
4331:
4329:Effective Scala.
4326:
4325:
4316:. Archived from
4306:
4300:
4299:
4297:
4295:
4286:. Archived from
4279:
4273:
4272:
4270:
4269:
4255:
4249:
4248:
4237:
4231:
4230:
4228:
4226:
4220:
4214:. Archived from
4213:
4204:
4198:
4197:
4179:
4173:
4172:
4149:Dominus, Mark J.
4145:
4139:
4138:
4136:
4135:
4121:
4112:
4111:
4110:
4109:
4092:
4086:
4085:
4070:
4064:
4063:
4061:
4059:
4044:
4038:
4037:
4035:
4033:
4022:
4016:
4015:
3994:
3988:
3987:
3985:
3984:
3973:
3967:
3966:
3964:
3963:
3948:
3942:
3941:
3931:
3915:
3909:
3908:
3906:
3905:
3887:
3878:
3877:
3875:
3874:
3856:
3847:
3846:
3844:
3843:
3819:
3808:
3807:
3802:
3801:
3787:
3778:
3777:
3775:
3774:
3768:
3761:
3750:
3741:
3740:
3734:
3726:
3716:
3696:
3687:
3686:
3684:
3683:
3673:
3667:
3666:
3656:
3632:
3623:
3622:
3596:
3587:
3586:
3584:
3583:
3569:
3560:
3559:
3557:
3556:
3550:
3544:. Archived from
3543:
3535:
3529:
3528:
3526:
3525:
3506:
3500:
3499:
3497:
3496:
3485:
3476:
3475:
3473:
3472:
3457:Cleis, Richard.
3454:
3445:
3444:
3442:
3441:
3423:
3414:
3413:
3411:
3410:
3386:
3377:
3376:
3374:
3373:
3353:
3344:
3343:
3332:
3323:
3322:
3320:
3319:
3313:
3307:. Archived from
3282:
3270:
3224:Eager evaluation
3218:
3213:
3212:
3105:Wolfram Language
2950:Richard Stallman
2948:and Emacs Lisp,
2920:
2917:
2914:
2911:
2908:
2905:
2902:
2899:
2896:
2893:
2890:
2887:
2884:
2881:
2878:
2875:
2872:
2869:
2866:
2863:
2860:
2857:
2854:
2851:
2848:
2845:
2842:
2839:
2836:
2833:
2830:
2827:
2824:
2821:
2818:
2815:
2812:
2809:
2806:
2803:
2800:
2797:
2794:
2791:
2788:
2785:
2782:
2779:
2776:
2773:
2770:
2767:
2764:
2761:
2758:
2755:
2752:
2749:
2746:
2743:
2740:
2737:
2734:
2731:
2728:
2725:
2722:
2719:
2716:
2713:
2710:
2707:
2704:
2701:
2698:
2695:
2692:
2689:
2686:
2683:
2665:
2657:
2650:
2647:
2644:
2641:
2638:
2635:
2632:
2629:
2626:
2623:
2620:
2617:
2614:
2611:
2608:
2605:
2602:
2599:
2596:
2586:
2583:
2580:
2577:
2574:
2571:
2568:
2565:
2562:
2559:
2556:
2545:
2542:
2539:
2536:
2533:
2530:
2527:
2524:
2521:
2518:
2515:
2512:
2509:
2506:
2503:
2500:
2497:
2494:
2491:
2488:
2485:
2482:
2479:
2469:
2466:
2463:
2460:
2457:
2454:
2451:
2448:
2445:
2442:
2439:
2436:
2433:
2430:
2427:
2424:
2421:
2418:
2415:
2412:
2409:
2406:
2392:
2389:
2386:
2383:
2380:
2377:
2374:
2371:
2368:
2365:
2362:
2359:
2356:
2353:
2350:
2347:
2344:
2341:
2338:
2335:
2332:
2329:
2319:
2316:
2313:
2310:
2307:
2304:
2301:
2298:
2295:
2292:
2289:
2286:
2250:strategy pattern
2192:
2099:
2095:
2079:
2078:
2069:
2068:
2060:
2057:
2054:
2051:
2048:
2045:
2042:
2039:
2036:
2033:
2030:
2027:
2024:
2021:
2018:
2015:
2012:
2009:
2006:
2003:
2000:
1997:
1994:
1991:
1988:
1985:
1982:
1979:
1976:
1973:
1970:
1967:
1964:
1961:
1958:
1925:
1922:
1919:
1916:
1913:
1910:
1907:
1904:
1901:
1898:
1895:
1892:
1889:
1867:Abstraction cost
1826:
1784:inline expansion
1677:Simulating state
1660:
1657:
1654:
1651:
1648:
1645:
1642:
1639:
1636:
1633:
1630:
1627:
1624:
1621:
1618:
1615:
1612:
1609:
1606:
1603:
1600:
1597:
1594:
1591:
1588:
1585:
1582:
1579:
1576:
1573:
1570:
1567:
1564:
1561:
1558:
1555:
1552:
1542:
1539:
1536:
1533:
1530:
1527:
1524:
1521:
1518:
1515:
1512:
1509:
1506:
1503:
1500:
1497:
1494:
1491:
1488:
1485:
1482:
1479:
1476:
1473:
1470:
1467:
1464:
1461:
1458:
1455:
1452:
1449:
1446:
1443:
1440:
1437:
1434:
1431:
1428:
1425:
1422:
1419:
1416:
1321:
1320:
1317:
1314:
1311:
1308:
1305:
1302:
1299:
1296:
1293:
1290:
1287:
1275:
1271:
1267:
1263:
1259:
1255:
1251:
1247:
1243:
1239:
893:
786:
784:
783:
778:
762:
760:
759:
754:
746:
511:abstract machine
198:Wolfram Language
87:of the program.
39:computer science
21:
8299:
8298:
8294:
8293:
8292:
8290:
8289:
8288:
8269:
8268:
8263:
8257:
8252:
8246:
8241:
8235:
8232:
8227:
8222:
8184:
8175:Very high-level
8131:
8126:
8096:
8091:
8033:
8026:
7917:Metaprogramming
7911:
7827:
7822:
7809:
7791:Graph rewriting
7629:
7605:Inductive logic
7585:Abductive logic
7571:
7528:
7491:Dependent types
7439:
7418:
7390:Prototype-based
7370:
7368:Object-oriented
7362:
7358:Nested function
7353:Invariant-based
7295:
7285:
7236:An introduction
7230:
7228:
7223:
7215:
7213:
7208:
7205:
7204:
7193:
7187:
7185:
7182:This audio file
7179:
7172:
7163:
7160:
7154:
7153:
7149:
7146:
7094:
7088:
7075:
7046:
7041:Morgan Kaufmann
7027:
7003:
6967:
6964:
6962:Further reading
6959:
6958:
6949:
6947:
6938:
6937:
6933:
6924:
6922:
6914:
6913:
6909:
6893:
6889:
6880:
6878:
6872:
6871:
6867:
6844:
6843:
6836:
6826:
6824:
6820:
6819:
6812:
6802:
6800:
6795:
6794:
6790:
6780:
6778:
6773:
6772:
6768:
6759:
6757:
6749:
6748:
6744:
6735:
6733:
6724:
6723:
6719:
6710:
6708:
6700:
6699:
6695:
6687:
6685:
6678:
6677:
6673:
6664:
6662:
6654:
6653:
6649:
6642:
6625:
6624:
6620:
6606:
6605:
6601:
6592:
6590:
6578:
6577:
6573:
6564:
6562:
6558:
6551:
6550:
6546:
6537:
6535:
6530:
6529:
6525:
6516:
6514:
6502:
6501:
6497:
6491:Wayback Machine
6482:
6478:
6469:
6468:
6464:
6455:
6453:
6441:
6440:
6436:
6421:Blackwell, Alan
6411:
6410:
6406:
6366:
6361:
6360:
6356:
6347:
6345:
6337:
6336:
6332:
6323:
6321:
6313:
6312:
6308:
6302:
6298:
6288:
6287:
6283:
6270:
6268:
6260:
6259:
6255:
6248:
6231:
6230:
6226:
6216:
6215:
6211:
6201:
6199:
6185:
6184:
6180:
6170:
6169:
6165:
6156:
6154:
6149:
6148:
6144:
6135:
6133:
6125:
6124:
6120:
6110:
6109:
6105:
6096:
6094:
6086:
6085:
6081:
6072:
6071:
6067:
6058:
6057:
6053:
6035:
6033:
6019:
6012:
6010:
6006:
5975:
5970:
5969:
5965:
5956:
5954:
5946:
5945:
5941:
5932:
5930:
5922:
5921:
5917:
5909:
5907:
5900:
5899:
5895:
5886:
5884:
5879:
5878:
5874:
5867:
5854:
5853:
5849:
5840:
5838:
5829:
5828:
5824:
5815:
5813:
5811:docs.oracle.com
5805:
5804:
5800:
5791:
5789:
5781:
5780:
5776:
5767:
5765:
5757:
5756:
5752:
5743:
5741:
5733:
5732:
5728:
5713:10.1002/cpe.853
5698:
5697:
5693:
5684:
5682:
5673:
5672:
5668:
5658:
5656:
5642:
5641:
5637:
5627:
5625:
5623:
5605:
5604:
5600:
5591:
5589:
5581:
5580:
5576:
5567:
5565:
5560:
5559:
5555:
5550:
5546:
5537:
5535:
5526:
5525:
5521:
5496:
5492:
5480:
5475:
5474:
5470:
5459:
5436:
5429:
5428:
5424:
5415:
5413:
5405:
5404:
5400:
5391:
5389:
5381:
5380:
5376:
5358:
5357:
5353:
5343:
5342:
5338:
5318:
5317:
5313:
5301:
5296:
5295:
5291:
5281:
5280:
5276:
5254:
5253:
5249:
5241:
5234:
5224:
5223:
5219:
5192:
5191:
5184:
5176:
5172:
5143:
5142:
5138:
5129:
5127:
5117:
5116:
5112:
5097:
5076:
5075:
5071:
5062:
5060:
5055:
5054:
5050:
5041:
5039:
5034:
5033:
5029:
5021:
5017:
5016:
5009:
4999:
4997:
4980:
4979:
4975:
4970:
4966:
4950:
4949:
4945:
4935:
4934:
4930:
4914:
4913:
4909:
4892:
4891:
4887:
4882:
4878:
4873:
4869:
4864:
4860:
4832:
4831:
4827:
4785:
4784:
4780:
4738:
4737:
4733:
4691:
4690:
4686:
4676:
4675:
4671:
4637:
4636:
4632:
4601:
4597:
4582:
4563:
4556:
4555:
4551:
4519:
4511:
4510:
4506:
4486:
4483:History of Lisp
4476:
4475:
4471:
4448:10.2307/2266170
4430:
4429:
4425:
4415:
4413:
4403:
4402:
4398:
4375:10.2307/2268280
4360:
4359:
4355:
4346:
4344:
4340:
4339:
4335:
4323:
4321:
4308:
4307:
4303:
4293:
4291:
4290:on 28 July 2020
4281:
4280:
4276:
4267:
4265:
4257:
4256:
4252:
4239:
4238:
4234:
4224:
4222:
4218:
4211:
4206:
4205:
4201:
4194:
4181:
4180:
4176:
4169:
4159:Morgan Kaufmann
4147:
4146:
4142:
4133:
4131:
4123:
4122:
4115:
4107:
4105:
4094:
4093:
4089:
4072:
4071:
4067:
4057:
4055:
4046:
4045:
4041:
4031:
4029:
4024:
4023:
4019:
4012:
3996:
3995:
3991:
3982:
3980:
3975:
3974:
3970:
3961:
3959:
3950:
3949:
3945:
3917:
3916:
3912:
3903:
3901:
3889:
3888:
3881:
3872:
3870:
3858:
3857:
3850:
3841:
3839:
3821:
3820:
3811:
3799:
3797:
3789:
3788:
3781:
3772:
3770:
3766:
3759:
3753:Leroy, Xavier.
3752:
3751:
3744:
3727:
3698:
3697:
3690:
3681:
3679:
3675:
3674:
3670:
3634:
3633:
3626:
3619:
3598:
3597:
3590:
3581:
3579:
3571:
3570:
3563:
3554:
3552:
3548:
3541:
3537:
3536:
3532:
3523:
3521:
3508:
3507:
3503:
3494:
3492:
3487:
3486:
3479:
3470:
3468:
3460:Scheme in Space
3456:
3455:
3448:
3439:
3437:
3425:
3424:
3417:
3408:
3406:
3388:
3387:
3380:
3371:
3369:
3355:
3354:
3347:
3334:
3333:
3326:
3317:
3315:
3311:
3280:
3272:
3271:
3267:
3262:
3249:Nested function
3214:
3207:
3204:
3194:In particular,
3176:
3168:category theory
3062:Apple Macintosh
3056:, a dialect of
3015:
2987:
2972:
2935:
2930:
2922:
2921:
2918:
2915:
2912:
2909:
2906:
2903:
2900:
2897:
2894:
2891:
2888:
2885:
2882:
2879:
2876:
2873:
2870:
2867:
2864:
2861:
2858:
2855:
2852:
2849:
2846:
2843:
2840:
2837:
2834:
2831:
2828:
2825:
2822:
2819:
2816:
2813:
2810:
2807:
2804:
2801:
2798:
2795:
2792:
2789:
2786:
2783:
2780:
2777:
2774:
2771:
2768:
2765:
2762:
2759:
2756:
2753:
2750:
2747:
2744:
2741:
2738:
2735:
2732:
2729:
2726:
2723:
2720:
2717:
2714:
2711:
2708:
2705:
2702:
2699:
2696:
2693:
2690:
2687:
2684:
2681:
2663:
2655:
2652:
2651:
2648:
2645:
2642:
2639:
2636:
2633:
2630:
2627:
2624:
2621:
2618:
2615:
2612:
2609:
2606:
2603:
2600:
2597:
2594:
2588:
2587:
2584:
2581:
2578:
2575:
2572:
2569:
2566:
2563:
2560:
2557:
2554:
2547:
2546:
2543:
2540:
2537:
2534:
2531:
2528:
2525:
2522:
2519:
2516:
2513:
2510:
2507:
2504:
2501:
2498:
2495:
2492:
2489:
2486:
2483:
2480:
2477:
2471:
2470:
2467:
2464:
2461:
2458:
2455:
2452:
2449:
2446:
2443:
2440:
2437:
2434:
2431:
2428:
2425:
2422:
2419:
2416:
2413:
2410:
2407:
2404:
2394:
2393:
2390:
2387:
2384:
2381:
2378:
2375:
2372:
2369:
2366:
2363:
2360:
2357:
2354:
2351:
2348:
2345:
2342:
2339:
2336:
2333:
2330:
2327:
2321:
2320:
2317:
2314:
2311:
2308:
2305:
2302:
2299:
2296:
2293:
2290:
2287:
2284:
2274:
2246:design patterns
2243:object-oriented
2190:
2141:
2131:, allowing for
2097:
2093:
2076:
2066:
2062:
2061:
2058:
2055:
2052:
2049:
2046:
2043:
2040:
2037:
2034:
2031:
2028:
2025:
2022:
2019:
2016:
2013:
2010:
2007:
2004:
2001:
1998:
1995:
1992:
1989:
1986:
1983:
1980:
1977:
1975:"1.0"
1974:
1971:
1968:
1965:
1962:
1959:
1956:
1927:
1926:
1923:
1920:
1917:
1914:
1911:
1908:
1905:
1902:
1899:
1896:
1893:
1890:
1887:
1869:
1852:Lazy evaluation
1830:message passing
1824:
1745:pointer chasing
1729:
1695:category theory
1693:, derived from
1679:
1662:
1661:
1658:
1655:
1652:
1649:
1646:
1643:
1640:
1637:
1634:
1631:
1628:
1625:
1622:
1619:
1616:
1613:
1610:
1607:
1604:
1601:
1598:
1595:
1592:
1589:
1586:
1583:
1580:
1577:
1574:
1571:
1568:
1565:
1562:
1559:
1556:
1553:
1550:
1544:
1543:
1540:
1537:
1534:
1531:
1528:
1525:
1522:
1519:
1516:
1513:
1510:
1507:
1504:
1501:
1498:
1495:
1492:
1489:
1486:
1483:
1480:
1477:
1474:
1471:
1468:
1465:
1462:
1459:
1456:
1453:
1450:
1447:
1444:
1441:
1438:
1435:
1432:
1429:
1426:
1423:
1420:
1417:
1414:
1401:
1381:
1345:data structures
1341:
1335:
1333:Data structures
1318:
1315:
1312:
1309:
1306:
1303:
1300:
1297:
1294:
1291:
1288:
1285:
1273:
1269:
1265:
1261:
1257:
1253:
1249:
1245:
1241:
1237:
1226:
1220:
1161:dependent types
1098:
1092:
1058:graph reduction
1050:
1049:print length()
1032:
1026:
983:halting problem
979:Turing complete
906:
900:
891:
826:
820:
769:
768:
734:
733:
724:
716:Main articles:
714:
698:
653:dependent types
628:and to require
626:lexical scoping
559:was created by
519:lambda calculus
358:Turing complete
354:Turing machines
330:lambda calculus
326:
236:in statistics,
182:lambda calculus
161:, be easier to
35:
28:
23:
22:
15:
12:
11:
5:
8297:
8295:
8287:
8286:
8281:
8271:
8270:
8267:
8266:
8255:
8244:
8231:
8228:
8224:
8223:
8221:
8220:
8215:
8210:
8205:
8200:
8194:
8192:
8186:
8185:
8183:
8182:
8177:
8172:
8167:
8161:
8160:
8155:
8150:
8145:
8139:
8137:
8133:
8132:
8127:
8125:
8124:
8117:
8110:
8102:
8093:
8092:
8090:
8089:
8084:
8079:
8074:
8069:
8064:
8059:
8054:
8049:
8044:
8038:
8036:
8028:
8027:
8025:
8024:
8019:
8014:
8009:
8004:
7982:
7977:
7972:
7962:
7957:
7952:
7947:
7942:
7937:
7927:
7921:
7919:
7913:
7912:
7910:
7909:
7904:
7899:
7894:
7889:
7884:
7879:
7874:
7869:
7864:
7859:
7849:
7844:
7839:
7833:
7831:
7815:
7814:
7811:
7810:
7808:
7807:
7802:
7787:Transformation
7784:
7779:
7774:
7769:
7764:
7759:
7754:
7749:
7744:
7739:
7734:
7725:
7720:
7715:
7710:
7705:
7700:
7695:
7690:
7685:
7680:
7675:
7673:Differentiable
7670:
7660:
7653:Automata-based
7650:
7645:
7639:
7637:
7631:
7630:
7628:
7627:
7622:
7617:
7612:
7607:
7602:
7592:
7587:
7581:
7579:
7573:
7572:
7570:
7569:
7564:
7559:
7554:
7544:
7538:
7536:
7530:
7529:
7527:
7526:
7520:Function-level
7517:
7508:
7503:
7498:
7493:
7488:
7483:
7478:
7473:
7468:
7463:
7453:
7447:
7445:
7430:
7424:
7423:
7420:
7419:
7417:
7416:
7411:
7406:
7401:
7396:
7382:
7380:
7364:
7363:
7361:
7360:
7355:
7350:
7345:
7340:
7335:
7333:Non-structured
7330:
7325:
7320:
7314:
7312:
7303:
7297:
7296:
7286:
7284:
7283:
7276:
7269:
7261:
7255:
7254:
7237:
7221:
7194:
7180:
7173:
7161:
7148:
7147:
7145:
7144:External links
7142:
7141:
7140:
7129:
7118:
7103:
7092:
7086:
7073:
7066:
7057:Graham, Paul.
7055:
7044:
7031:
7025:
7001:
6994:
6983:
6963:
6960:
6957:
6956:
6931:
6907:
6887:
6865:
6834:
6810:
6788:
6766:
6742:
6717:
6693:
6671:
6647:
6640:
6618:
6599:
6571:
6544:
6523:
6495:
6476:
6462:
6434:
6431:on 2005-10-16.
6423:(March 2003).
6404:
6377:(1): 131–143.
6354:
6330:
6306:
6296:
6281:
6253:
6247:978-0321356680
6246:
6236:Effective Java
6224:
6209:
6178:
6163:
6142:
6129:(2009-04-21).
6118:
6103:
6079:
6065:
6051:
5986:(2): 129–135.
5963:
5939:
5915:
5893:
5872:
5865:
5847:
5822:
5798:
5774:
5750:
5726:
5691:
5666:
5635:
5621:
5598:
5574:
5553:
5544:
5519:
5490:
5476:Hughes, John.
5468:
5465:on 2006-12-29.
5457:
5422:
5398:
5383:"OCaml Manual"
5374:
5351:
5336:
5330:10.1.1.31.3590
5311:
5289:
5274:
5263:(3): 257–267.
5247:
5244:on 2016-04-07.
5217:
5196:(March 1993).
5182:
5170:
5159:(7): 751–768.
5147:(2004-07-28).
5136:
5122:Archived from
5110:
5095:
5069:
5048:
5027:
5007:
4973:
4964:
4943:
4928:
4907:
4904:on 2023-04-19.
4885:
4876:
4867:
4858:
4845:(8): 613–641.
4825:
4778:
4731:
4684:
4669:
4630:
4620:Logic Theorist
4602:The memoir of
4595:
4580:
4549:
4504:
4478:McCarthy, John
4469:
4423:
4396:
4353:
4333:
4301:
4274:
4250:
4232:
4221:on 30 May 2009
4199:
4192:
4174:
4167:
4140:
4113:
4087:
4065:
4047:Mertz, David.
4039:
4017:
4010:
3989:
3968:
3957:Opensource.com
3943:
3910:
3879:
3848:
3809:
3779:
3742:
3707:(4): 553–564.
3688:
3668:
3624:
3617:
3588:
3561:
3530:
3501:
3477:
3446:
3415:
3378:
3345:
3324:
3291:(3): 359–411.
3264:
3263:
3261:
3258:
3257:
3256:
3251:
3246:
3241:
3236:
3231:
3226:
3220:
3219:
3203:
3200:
3175:
3172:
3031:fault-tolerant
3014:
3011:
2986:
2983:
2971:
2968:
2934:
2931:
2929:
2926:
2680:
2593:
2553:
2476:
2403:
2326:
2283:
2273:
2270:
2199:Visual Basic 9
2140:
2137:
2121:loop unrolling
1955:
1886:
1868:
1865:
1813:shared-nothing
1728:
1725:
1721:effect systems
1678:
1675:
1549:
1413:
1400:
1397:
1380:
1377:
1337:Main article:
1334:
1331:
1222:Main article:
1219:
1216:
1177:certified code
1167:. Through the
1134:type inference
1094:Main article:
1091:
1088:
1048:
1036:strict (eager)
1028:Main article:
1025:
1022:
949:stack overflow
929:tail recursion
902:Main article:
899:
896:
890:. C++11 added
875:
874:
866:
855:
840:
829:Pure functions
822:Main article:
819:
818:Pure functions
816:
812:natural number
776:
767:of a function
752:
749:
745:
741:
713:
710:
697:
694:
637:Per Martin-Löf
635:In the 1980s,
602:In the 1970s,
488:Arthur Whitney
325:
322:
274:mutable values
139:pure functions
26:
24:
14:
13:
10:
9:
6:
4:
3:
2:
8296:
8285:
8282:
8280:
8277:
8276:
8274:
8262:
8256:
8251:
8245:
8240:
8234:
8233:
8229:
8219:
8216:
8214:
8211:
8209:
8206:
8204:
8201:
8199:
8196:
8195:
8193:
8191:
8187:
8181:
8178:
8176:
8173:
8171:
8168:
8166:
8163:
8162:
8159:
8156:
8154:
8151:
8149:
8146:
8144:
8141:
8140:
8138:
8134:
8130:
8123:
8118:
8116:
8111:
8109:
8104:
8103:
8100:
8088:
8085:
8083:
8080:
8078:
8075:
8073:
8070:
8068:
8065:
8063:
8060:
8058:
8057:Data-oriented
8055:
8053:
8050:
8048:
8045:
8043:
8040:
8039:
8037:
8035:
8029:
8023:
8020:
8018:
8015:
8013:
8010:
8008:
8005:
8002:
7998:
7994:
7990:
7986:
7983:
7981:
7978:
7976:
7973:
7970:
7966:
7963:
7961:
7958:
7956:
7955:Homoiconicity
7953:
7951:
7948:
7946:
7943:
7941:
7938:
7935:
7931:
7928:
7926:
7923:
7922:
7920:
7918:
7914:
7908:
7905:
7903:
7900:
7898:
7895:
7893:
7890:
7888:
7885:
7883:
7880:
7878:
7875:
7873:
7870:
7868:
7865:
7863:
7862:Concurrent OO
7860:
7857:
7853:
7850:
7848:
7845:
7843:
7840:
7838:
7835:
7834:
7832:
7830:
7825:
7820:
7816:
7806:
7803:
7800:
7796:
7792:
7788:
7785:
7783:
7780:
7778:
7775:
7773:
7770:
7768:
7765:
7763:
7760:
7758:
7757:Set-theoretic
7755:
7753:
7750:
7748:
7745:
7743:
7740:
7738:
7737:Probabilistic
7735:
7733:
7729:
7726:
7724:
7721:
7719:
7716:
7714:
7711:
7709:
7706:
7704:
7701:
7699:
7696:
7694:
7691:
7689:
7686:
7684:
7681:
7679:
7676:
7674:
7671:
7668:
7664:
7661:
7658:
7654:
7651:
7649:
7646:
7644:
7641:
7640:
7638:
7636:
7632:
7626:
7623:
7621:
7618:
7616:
7613:
7611:
7608:
7606:
7603:
7600:
7596:
7593:
7591:
7588:
7586:
7583:
7582:
7580:
7578:
7574:
7568:
7565:
7563:
7560:
7558:
7555:
7552:
7548:
7545:
7543:
7540:
7539:
7537:
7535:
7531:
7525:
7521:
7518:
7516:
7515:Concatenative
7512:
7509:
7507:
7504:
7502:
7499:
7497:
7494:
7492:
7489:
7487:
7484:
7482:
7479:
7477:
7474:
7472:
7469:
7467:
7464:
7461:
7457:
7454:
7452:
7449:
7448:
7446:
7443:
7438:
7434:
7431:
7429:
7425:
7415:
7412:
7410:
7407:
7405:
7402:
7400:
7397:
7395:
7391:
7387:
7384:
7383:
7381:
7378:
7374:
7369:
7365:
7359:
7356:
7354:
7351:
7349:
7346:
7344:
7341:
7339:
7336:
7334:
7331:
7329:
7326:
7324:
7321:
7319:
7316:
7315:
7313:
7311:
7307:
7304:
7302:
7298:
7293:
7289:
7282:
7277:
7275:
7270:
7268:
7263:
7262:
7259:
7253:
7249:
7245:
7241:
7238:
7227:
7222:
7212:
7207:
7206:
7202:
7198:
7183:
7143:
7138:
7134:
7130:
7127:
7123:
7119:
7116:
7115:Prentice Hall
7112:
7108:
7104:
7100:
7099:
7093:
7089:
7083:
7079:
7074:
7071:
7067:
7064:
7063:Prentice Hall
7060:
7056:
7052:
7051:
7045:
7042:
7038:
7037:
7032:
7028:
7022:
7018:
7014:
7010:
7006:
7002:
6999:
6995:
6992:
6988:
6984:
6980:
6979:
6974:
6970:
6966:
6965:
6961:
6946:
6942:
6935:
6932:
6921:
6917:
6911:
6908:
6904:
6900:
6899:Triangulation
6896:
6891:
6888:
6876:
6869:
6866:
6861:
6860:
6855:
6851:
6847:
6841:
6839:
6835:
6823:
6817:
6815:
6811:
6798:
6792:
6789:
6776:
6770:
6767:
6756:
6752:
6746:
6743:
6732:
6728:
6721:
6718:
6707:
6703:
6697:
6694:
6684:
6683:
6675:
6672:
6661:
6657:
6651:
6648:
6643:
6641:9781785281372
6637:
6633:
6629:
6622:
6619:
6614:
6610:
6603:
6600:
6589:on 2010-12-21
6588:
6584:
6583:
6575:
6572:
6557:
6556:
6548:
6545:
6534:
6527:
6524:
6513:on 2009-10-17
6512:
6508:
6507:
6499:
6496:
6492:
6488:
6485:
6480:
6477:
6472:
6466:
6463:
6452:on 2009-10-17
6451:
6447:
6446:
6438:
6435:
6430:
6426:
6422:
6418:
6414:
6408:
6405:
6400:
6396:
6392:
6388:
6384:
6380:
6376:
6372:
6365:
6358:
6355:
6344:
6340:
6334:
6331:
6320:
6316:
6310:
6307:
6300:
6297:
6292:
6285:
6282:
6278:
6267:
6263:
6257:
6254:
6249:
6243:
6238:
6237:
6228:
6225:
6220:
6213:
6210:
6198:on 2013-04-14
6197:
6193:
6189:
6182:
6179:
6174:
6167:
6164:
6152:
6146:
6143:
6132:
6128:
6122:
6119:
6114:
6107:
6104:
6093:
6089:
6083:
6080:
6075:
6069:
6066:
6061:
6055:
6052:
6048:
6044:
6032:on 2007-10-16
6031:
6027:
6023:
6020:David Mertz.
6009:on 2011-07-19
6005:
6001:
5997:
5993:
5989:
5985:
5981:
5974:
5967:
5964:
5953:
5949:
5943:
5940:
5929:
5925:
5919:
5916:
5906:
5905:
5897:
5894:
5882:
5876:
5873:
5868:
5862:
5858:
5851:
5848:
5836:
5832:
5826:
5823:
5812:
5808:
5802:
5799:
5788:
5784:
5778:
5775:
5764:
5760:
5754:
5751:
5740:
5736:
5730:
5727:
5722:
5718:
5714:
5710:
5706:
5702:
5695:
5692:
5681:on 2013-05-20
5680:
5676:
5670:
5667:
5654:
5650:
5646:
5639:
5636:
5624:
5618:
5614:
5613:
5608:
5602:
5599:
5588:
5584:
5578:
5575:
5564:
5557:
5554:
5548:
5545:
5534:
5530:
5523:
5520:
5517:
5516:0-521-66350-4
5513:
5509:
5505:
5504:Chris Okasaki
5501:
5500:
5494:
5491:
5486:
5479:
5472:
5469:
5464:
5460:
5458:9781595930316
5454:
5450:
5446:
5442:
5435:
5434:
5426:
5423:
5412:
5408:
5402:
5399:
5388:
5387:caml.inria.fr
5384:
5378:
5375:
5370:
5366:
5362:
5355:
5352:
5347:
5340:
5337:
5331:
5326:
5322:
5315:
5312:
5307:
5300:
5293:
5290:
5285:
5278:
5275:
5270:
5266:
5262:
5258:
5251:
5248:
5240:
5233:
5232:
5227:
5221:
5218:
5212:
5207:
5203:
5199:
5195:
5189:
5187:
5183:
5179:
5174:
5171:
5166:
5162:
5158:
5154:
5150:
5146:
5140:
5137:
5126:on 2006-03-03
5125:
5121:
5114:
5111:
5106:
5102:
5098:
5092:
5088:
5084:
5080:
5073:
5070:
5058:
5052:
5049:
5037:
5031:
5028:
5020:
5014:
5012:
5008:
4996:on 2006-08-27
4995:
4991:
4990:(August 1994)
4989:
4984:
4977:
4974:
4968:
4965:
4960:
4959:
4954:
4947:
4944:
4939:
4932:
4929:
4924:
4923:
4918:
4911:
4908:
4903:
4899:
4895:
4889:
4886:
4880:
4877:
4871:
4868:
4862:
4859:
4853:
4848:
4844:
4840:
4836:
4829:
4826:
4821:
4817:
4812:
4807:
4803:
4799:
4795:
4794:
4789:
4782:
4779:
4774:
4770:
4765:
4760:
4756:
4752:
4748:
4747:
4742:
4735:
4732:
4727:
4723:
4718:
4713:
4709:
4705:
4701:
4700:
4695:
4688:
4685:
4680:
4673:
4670:
4664:
4659:
4655:
4651:
4647:
4646:
4641:
4634:
4631:
4627:
4626:
4621:
4617:
4616:0-465-04640-1
4613:
4609:
4605:
4599:
4596:
4591:
4587:
4583:
4577:
4573:
4569:
4562:
4561:
4553:
4550:
4545:
4541:
4537:
4533:
4529:
4525:
4518:
4514:
4513:John McCarthy
4508:
4505:
4500:
4496:
4492:
4485:
4484:
4480:(June 1978).
4479:
4473:
4470:
4465:
4461:
4457:
4453:
4449:
4445:
4441:
4437:
4433:
4427:
4424:
4410:
4409:
4400:
4397:
4392:
4388:
4384:
4380:
4376:
4372:
4368:
4364:
4357:
4354:
4343:
4337:
4334:
4330:
4320:on 2012-06-19
4319:
4315:
4311:
4305:
4302:
4289:
4285:
4278:
4275:
4264:
4260:
4254:
4251:
4246:
4242:
4236:
4233:
4217:
4210:
4203:
4200:
4195:
4193:9781940111056
4189:
4185:
4178:
4175:
4170:
4164:
4160:
4156:
4155:
4150:
4144:
4141:
4130:
4126:
4120:
4118:
4114:
4104:on 2021-10-30
4103:
4099:
4098:
4091:
4088:
4083:
4079:
4075:
4069:
4066:
4054:
4050:
4043:
4040:
4028:
4021:
4018:
4013:
4007:
4003:
3999:
3993:
3990:
3978:
3972:
3969:
3958:
3954:
3947:
3944:
3939:
3935:
3930:
3925:
3921:
3914:
3911:
3900:on 2009-10-17
3899:
3895:
3894:
3886:
3884:
3880:
3869:on 2015-07-08
3868:
3864:
3863:
3855:
3853:
3849:
3838:
3834:
3830:
3829:
3824:
3818:
3816:
3814:
3810:
3806:
3796:
3792:
3786:
3784:
3780:
3769:on 2011-10-08
3765:
3758:
3757:
3749:
3747:
3743:
3738:
3732:
3724:
3720:
3715:
3710:
3706:
3702:
3695:
3693:
3689:
3678:
3672:
3669:
3664:
3660:
3655:
3650:
3646:
3642:
3638:
3631:
3629:
3625:
3620:
3618:9781595937667
3614:
3610:
3606:
3602:
3595:
3593:
3589:
3578:
3574:
3568:
3566:
3562:
3551:on 2012-12-15
3547:
3540:
3534:
3531:
3520:on 2007-11-13
3519:
3515:
3511:
3505:
3502:
3490:
3484:
3482:
3478:
3467:on 2010-05-27
3466:
3462:
3461:
3453:
3451:
3447:
3436:on 2010-12-21
3435:
3431:
3430:
3422:
3420:
3416:
3405:on 2011-06-29
3404:
3400:
3396:
3392:
3385:
3383:
3379:
3367:
3363:
3359:
3352:
3350:
3346:
3341:
3337:
3331:
3329:
3325:
3314:on 2016-01-31
3310:
3306:
3302:
3298:
3294:
3290:
3286:
3279:
3275:
3269:
3266:
3259:
3255:
3252:
3250:
3247:
3245:
3242:
3240:
3237:
3235:
3232:
3230:
3227:
3225:
3222:
3221:
3217:
3211:
3206:
3201:
3199:
3197:
3192:
3190:
3189:
3183:
3181:
3173:
3171:
3169:
3165:
3161:
3157:
3153:
3152:Gröbner basis
3147:
3146:
3142:
3138:
3134:
3130:
3126:
3122:
3121:ClojureScript
3118:
3114:
3110:
3106:
3102:
3098:
3093:
3091:
3087:
3083:
3079:
3075:
3071:
3067:
3063:
3059:
3055:
3051:
3047:
3043:
3039:
3035:
3032:
3028:
3024:
3020:
3012:
3010:
3008:
3004:
3000:
2996:
2995:peer-reviewed
2992:
2984:
2982:
2980:
2976:
2969:
2967:
2965:
2964:S-expressions
2961:
2957:
2953:
2951:
2947:
2943:
2939:
2932:
2927:
2925:
2678:
2676:
2671:
2669:
2661:
2591:
2551:
2474:
2401:
2399:
2324:
2281:
2278:
2271:
2269:
2265:
2263:
2259:
2255:
2251:
2247:
2244:
2239:
2237:
2232:
2230:
2225:
2223:
2219:
2214:
2212:
2208:
2204:
2200:
2196:
2188:
2184:
2180:
2176:
2172:
2168:
2164:
2160:
2156:
2152:
2150:
2146:
2138:
2136:
2134:
2130:
2126:
2122:
2118:
2114:
2109:
2107:
2103:
2091:
2087:
2083:
2073:
1953:
1951:
1947:
1944:
1940:
1936:
1932:
1884:
1882:
1878:
1874:
1866:
1864:
1861:
1857:
1853:
1849:
1847:
1843:
1839:
1835:
1831:
1822:
1818:
1814:
1809:
1808:
1804:
1800:
1796:
1793:
1789:
1785:
1780:
1778:
1774:
1770:
1766:
1762:
1758:
1754:
1750:
1746:
1742:
1738:
1734:
1726:
1724:
1722:
1718:
1714:
1709:
1707:
1702:
1698:
1696:
1692:
1688:
1683:
1676:
1674:
1672:
1668:
1547:
1411:
1408:
1406:
1398:
1396:
1392:
1390:
1386:
1378:
1376:
1374:
1370:
1366:
1362:
1358:
1354:
1350:
1346:
1340:
1332:
1330:
1328:
1324:
1281:
1279:
1235:
1230:
1225:
1217:
1215:
1213:
1209:
1205:
1201:
1196:
1194:
1190:
1186:
1182:
1178:
1174:
1170:
1166:
1162:
1158:
1155:are based on
1154:
1150:
1146:
1142:
1137:
1135:
1131:
1127:
1123:
1119:
1115:
1111:
1107:
1103:
1097:
1089:
1087:
1085:
1081:
1077:
1073:
1071:
1067:
1063:
1059:
1054:
1047:
1045:
1041:
1037:
1031:
1023:
1021:
1019:
1015:
1011:
1007:
1003:
999:
995:
994:inconsistency
991:
987:
984:
980:
975:
973:
969:
965:
961:
960:catamorphisms
956:
954:
950:
946:
941:
936:
934:
930:
926:
922:
918:
914:
910:
905:
897:
895:
889:
885:
881:
872:
871:deforestation
867:
864:
860:
856:
853:
849:
845:
841:
838:
837:
836:
834:
830:
825:
824:Pure function
817:
815:
813:
809:
805:
801:
796:
793:
788:
774:
766:
750:
747:
743:
739:
732:
728:
723:
719:
711:
709:
707:
703:
695:
693:
690:
688:
684:
680:
675:
673:
672:open standard
669:
665:
660:
658:
654:
651:expressed as
650:
646:
643:(also called
642:
638:
633:
631:
627:
623:
622:
617:
616:Lambda Papers
613:
609:
605:
604:Guy L. Steele
600:
598:
594:
590:
586:
582:
578:
574:
570:
566:
562:
558:
553:
551:
547:
542:
538:
534:
530:
526:
524:
520:
516:
512:
508:
504:
499:
497:
493:
489:
485:
481:
477:
473:
469:
468:9780471430148
465:
461:
457:
453:
449:
447:
443:
439:
435:
433:
429:
425:
421:
417:
413:
409:
405:
401:
400:John McCarthy
397:
393:
389:
384:
382:
378:
373:
371:
370:Haskell Curry
367:
363:
359:
355:
351:
347:
343:
339:
338:formal system
335:
334:Alonzo Church
331:
323:
321:
319:
315:
311:
307:
303:
299:
295:
291:
287:
283:
279:
275:
271:
267:
263:
259:
255:
251:
247:
243:
239:
235:
231:
227:
223:
219:
215:
211:
207:
203:
199:
195:
191:
187:
183:
179:
174:
172:
168:
164:
160:
156:
152:
148:
144:
140:
136:
133:mathematical
132:
131:deterministic
128:
123:
121:
117:
113:
109:
105:
101:
98:), passed as
97:
93:
88:
86:
85:running state
82:
79:
75:
71:
67:
63:
59:
56:
52:
48:
44:
40:
33:
19:
8264:}}
8258:{{
8253:}}
8247:{{
8242:}}
8236:{{
8062:Event-driven
7466:Higher-order
7436:
7394:Object-based
7239:
7229:. Retrieved
7214:. Retrieved
7209:Ford, Neal.
7132:
7121:
7110:
7097:
7077:
7069:
7058:
7053:. MIT Press.
7049:
7034:
7016:
6997:
6986:
6981:. MIT Press.
6977:
6969:Abelson, Hal
6948:. Retrieved
6944:
6934:
6923:. Retrieved
6919:
6910:
6898:
6890:
6879:. Retrieved
6868:
6858:
6846:Abelson, Hal
6825:. Retrieved
6801:. Retrieved
6791:
6779:. Retrieved
6769:
6758:. Retrieved
6754:
6745:
6734:. Retrieved
6730:
6720:
6709:. Retrieved
6705:
6696:
6686:, retrieved
6681:
6674:
6663:. Retrieved
6659:
6650:
6627:
6621:
6612:
6602:
6591:. Retrieved
6587:the original
6581:
6574:
6563:. Retrieved
6554:
6547:
6536:. Retrieved
6526:
6515:. Retrieved
6511:the original
6505:
6498:
6479:
6465:
6454:. Retrieved
6450:the original
6444:
6437:
6429:the original
6407:
6374:
6370:
6357:
6346:. Retrieved
6342:
6333:
6322:. Retrieved
6319:stallman.org
6318:
6309:
6299:
6290:
6284:
6275:
6269:. Retrieved
6265:
6256:
6235:
6227:
6212:
6200:. Retrieved
6196:the original
6191:
6181:
6172:
6166:
6155:. Retrieved
6145:
6134:. Retrieved
6121:
6113:"Popularity"
6106:
6095:. Retrieved
6091:
6082:
6068:
6054:
6034:. Retrieved
6030:the original
6025:
6011:. Retrieved
6004:the original
5983:
5979:
5966:
5955:. Retrieved
5951:
5942:
5931:. Retrieved
5927:
5918:
5908:, retrieved
5903:
5896:
5885:. Retrieved
5875:
5856:
5850:
5839:. Retrieved
5837:. 2023-01-28
5834:
5825:
5814:. Retrieved
5810:
5801:
5790:. Retrieved
5786:
5777:
5766:. Retrieved
5762:
5753:
5742:. Retrieved
5738:
5729:
5704:
5700:
5694:
5683:. Retrieved
5679:the original
5669:
5657:. Retrieved
5653:the original
5648:
5638:
5626:. Retrieved
5611:
5601:
5590:. Retrieved
5586:
5577:
5566:. Retrieved
5561:Newbern, J.
5556:
5547:
5536:. Retrieved
5532:
5522:
5498:
5493:
5471:
5463:the original
5432:
5425:
5414:. Retrieved
5410:
5401:
5390:. Retrieved
5386:
5377:
5368:
5354:
5339:
5320:
5314:
5305:
5292:
5283:
5277:
5260:
5256:
5250:
5239:the original
5230:
5220:
5197:
5173:
5156:
5152:
5145:Turner, D.A.
5139:
5128:. Retrieved
5124:the original
5113:
5078:
5072:
5061:. Retrieved
5051:
5040:. Retrieved
5030:
4998:. Retrieved
4994:the original
4986:
4976:
4967:
4956:
4946:
4940:. Computing.
4931:
4922:Ars Technica
4920:
4910:
4902:the original
4897:
4888:
4879:
4870:
4861:
4842:
4838:
4828:
4797:
4791:
4781:
4750:
4744:
4734:
4703:
4697:
4687:
4678:
4672:
4649:
4643:
4633:
4623:
4607:
4598:
4559:
4552:
4527:
4523:
4507:
4490:
4482:
4472:
4442:(2): 56–68.
4439:
4435:
4426:
4414:. Retrieved
4407:
4399:
4366:
4362:
4356:
4345:. Retrieved
4336:
4328:
4322:. Retrieved
4318:the original
4313:
4304:
4292:. Retrieved
4288:the original
4277:
4266:. Retrieved
4262:
4253:
4244:
4235:
4223:. Retrieved
4216:the original
4202:
4183:
4177:
4153:
4143:
4132:. Retrieved
4128:
4106:, retrieved
4102:the original
4096:
4090:
4081:
4068:
4056:. Retrieved
4052:
4042:
4030:. Retrieved
4020:
4001:
3992:
3981:. Retrieved
3971:
3960:. Retrieved
3956:
3946:
3919:
3913:
3902:. Retrieved
3898:the original
3892:
3871:. Retrieved
3867:the original
3861:
3840:. Retrieved
3827:
3804:
3798:. Retrieved
3795:Haskell Wiki
3794:
3771:. Retrieved
3764:the original
3755:
3731:cite journal
3704:
3700:
3680:. Retrieved
3671:
3644:
3640:
3600:
3580:. Retrieved
3576:
3553:. Retrieved
3546:the original
3533:
3522:. Retrieved
3518:the original
3513:
3504:
3493:. Retrieved
3469:. Retrieved
3465:the original
3459:
3438:. Retrieved
3434:the original
3428:
3426:Kidd, Eric.
3407:. Retrieved
3403:the original
3398:
3394:
3370:. Retrieved
3365:
3361:
3336:Hughes, John
3316:. Retrieved
3309:the original
3288:
3284:
3268:
3193:
3186:
3184:
3180:universities
3177:
3148:
3144:
3137:Font Awesome
3117:Data science
3094:
3016:
2988:
2979:zeroth-order
2975:Spreadsheets
2973:
2970:Spreadsheets
2954:
2942:Lisp dialect
2936:
2933:Text editors
2928:Applications
2923:
2672:
2667:
2659:
2653:
2589:
2548:
2472:
2397:
2395:
2322:
2275:
2266:
2258:catamorphism
2240:
2233:
2226:
2215:
2153:
2142:
2135:at runtime.
2116:
2110:
2063:
1928:
1870:
1859:
1856:memory leaks
1850:
1810:
1806:
1794:
1791:
1781:
1730:
1710:
1703:
1699:
1684:
1680:
1663:
1545:
1409:
1402:
1393:
1389:side effects
1382:
1342:
1327:side effects
1322:
1282:
1277:
1268:with either
1231:
1227:
1197:
1138:
1099:
1090:Type systems
1074:
1055:
1051:
1039:
1035:
1033:
1006:well-founded
976:
964:anamorphisms
957:
937:
907:
887:
876:
833:side effects
827:
797:
789:
725:
699:
691:
676:
661:
645:constructive
644:
634:
619:
601:
569:David Turner
561:Robin Milner
554:
537:Turing Award
535:in his 1977
527:
509:, the first
507:SECD machine
503:Peter Landin
500:
459:
450:
445:
436:
385:
374:
327:
232:in the Web,
175:
153:, common in
147:side effects
124:
89:
42:
36:
8158:Interpreted
8072:Intentional
8052:Data-driven
8034:of concerns
7993:Inferential
7980:Multi-stage
7960:Interactive
7837:Actor-based
7824:distributed
7767:Stack-based
7567:Synchronous
7524:Value-level
7511:Applicative
7428:Declarative
7386:Class-based
7101:. O'Reilly.
6561:. CUFP 2006
5649:Code Commit
5628:10 February
5533:Polymatheia
5323:: 176–185.
4804:: 157–166.
4757:: 158–165.
4656:: 308–320.
4610:pp.189-190
4416:10 February
3823:Hudak, Paul
3274:Hudak, Paul
3113:Standard ML
2856:grandparent
2682:grandparent
1939:Ryzen 7900X
1931:benchmarked
1834:actor model
1713:Hoare logic
1373:persistence
1369:logarithmic
1361:binary heap
1096:Type system
1076:Hughes 1984
1004:allow only
998:type system
986:undecidable
863:thread-safe
852:memoization
848:idempotence
704:(including
597:Standard ML
541:von Neumann
529:John Backus
472:John Backus
432:Common Lisp
350:Alan Turing
344:built from
342:computation
186:Common Lisp
112:declarative
96:identifiers
70:expressions
8273:Categories
8190:Generation
8170:High-level
8047:Components
8032:Separation
8007:Reflective
8001:by example
7945:Extensible
7819:Concurrent
7795:Production
7782:Templating
7762:Simulation
7747:Scientific
7667:Spacecraft
7595:Constraint
7590:Answer set
7542:Flow-based
7442:comparison
7437:Functional
7409:Persistent
7373:comparison
7338:Procedural
7310:Structured
7301:Imperative
7231:2013-02-24
7216:2021-11-10
7197:Audio help
7188:2011-08-25
6950:2024-04-29
6925:2024-04-29
6881:2020-08-14
6760:2024-04-29
6736:2024-04-29
6711:2024-04-29
6706:StackShare
6688:2024-04-29
6665:2024-04-29
6660:StackShare
6593:2009-08-29
6565:2009-08-29
6538:2009-08-29
6517:2009-08-29
6456:2009-08-29
6348:2024-04-29
6324:2024-04-29
6271:2021-01-04
6188:"Closures"
6157:2011-07-31
6136:2012-09-27
6097:2021-01-04
6092:golang.org
6036:2006-09-17
6013:2006-05-28
5957:2024-04-29
5933:2024-04-29
5910:2024-04-29
5887:2011-06-20
5841:2024-04-29
5816:2024-04-29
5792:2024-04-29
5768:2024-04-29
5744:2024-04-29
5685:2011-06-20
5592:2018-11-13
5568:2008-02-14
5538:2018-11-13
5416:2021-03-08
5392:2021-03-08
5130:2020-04-29
5096:0897919874
5063:2013-03-21
5059:. R6rs.org
5042:2013-03-21
5038:. R6rs.org
5000:August 31,
4710:: 89–101.
4432:Church, A.
4347:2021-06-16
4324:2012-02-21
4314:Scala Wiki
4268:2021-01-09
4134:2019-05-01
4108:2021-10-23
4084:: 249–264.
3983:2011-06-20
3962:2021-01-09
3904:2009-08-29
3873:2009-08-29
3842:2013-09-26
3800:2009-08-26
3773:2009-08-26
3682:2021-02-14
3582:2018-04-27
3555:2011-08-08
3524:2006-08-28
3495:2015-08-24
3471:2009-08-26
3440:2009-08-26
3409:2008-08-28
3372:2008-08-28
3318:2013-08-10
3129:PureScript
3005:, and the
2155:JavaScript
2149:Fortran 95
2102:allocation
2082:lo library
1937:tool on a
1933:using the
1863:cycles) .
1807:lifetimes.
1803:references
1717:uniqueness
1405:JavaScript
1357:hash table
1349:imperative
884:Fortran 95
765:derivative
639:developed
610:developed
531:presented
454:developed
388:high-level
386:The first
348:. In 1937
230:JavaScript
151:procedures
116:composable
81:statements
78:imperative
60:. It is a
8165:Low-level
7934:Inductive
7930:Automatic
7752:Scripting
7451:Recursive
6391:0956-7968
5904:samber/lo
5369:Icfp 2006
5325:CiteSeerX
4958:InfoWorld
4294:6 October
3938:1611-3349
3647:(3): 48.
3305:207637854
3174:Education
3072:control.
3070:telescope
2946:GNU Emacs
2892:elizabeth
2784:elizabeth
2517:elizabeth
2420:elizabeth
2398:backwards
2388:elizabeth
2297:elizabeth
2191:functools
1943:Leiningen
1935:Criterium
1795:immutable
1765:databases
1232:Consider
921:base case
913:recursion
909:Iteration
898:Recursion
892:constexpr
505:invented
480:Roger Hui
446:generator
408:recursive
402:while at
381:data type
145:or other
135:functions
108:data type
100:arguments
72:that map
58:functions
55:composing
8230:See also
8180:Esoteric
8153:Compiled
8148:Assembly
8087:Subjects
8077:Literate
8067:Features
8022:Template
8017:Symbolic
7989:Bayesian
7969:Hygienic
7829:parallel
7708:Modeling
7703:Low-code
7678:End-user
7615:Ontology
7547:Reactive
7534:Dataflow
7199: ·
7015:(1972).
6975:(1985).
6852:(1985).
6827:28 April
6803:28 April
6781:28 April
6487:Archived
6399:29429059
6000:32346900
5721:34527406
5659:17 April
5510:, 1998,
5371:: 50–61.
5228:(2009).
5105:16812984
4898:OpenSCAD
4820:13409665
4773:15781851
4606:(1991),
4590:47047140
4515:(1960).
4464:15889861
4151:(2005).
4000:(1998).
3723:30955392
3338:(1984).
3202:See also
3119:, while
3050:WhatsApp
3042:Facebook
3027:Ericsson
3025:company
3013:Industry
2985:Academia
2222:closures
2216:In PHP,
2185:", and "
2125:Assembly
2106:inlining
2090:generics
2014:bit-and
1996:integer?
1792:formally
1761:matrices
1266:x=x * 10
1238:x=x * 10
1189:compiler
1185:Compcert
1132:, while
859:parallel
804:currying
696:Concepts
683:OpenSCAD
517:and the
515:ALGOL 60
482:created
178:academia
122:manner.
104:returned
51:applying
8143:Machine
8042:Aspects
7950:Generic
7940:Dynamic
7799:Pattern
7777:Tactile
7742:Quantum
7732:filters
7663:Command
7562:Streams
7557:Signals
7328:Modular
7186: (
7157:minutes
7139:, 1996.
7128:, 1998.
7117:, 1996.
7065:, 1996.
7043:. 2005.
6993:, 1998.
6905:network
6903:TWiT.tv
6901:on the
6339:"Helix"
4726:6505810
4544:1489409
4456:2266170
4391:2317046
4383:2268280
4245:YouTube
4225:27 June
4186:. php.
4058:May 27,
4032:May 27,
3395:MacTech
3362:MacTech
3141:Allegro
3090:Haskell
3023:Swedish
2916:phillip
2847:charles
2805:phillip
2796:charles
2775:charles
2505:charles
2432:charles
2370:charles
2291:charles
2254:visitor
2067:.equals
1978::static
1950:Java VM
1903:.equals
1881:Clojure
1788:Clojure
1706:Clojure
1687:Haskell
1526:numList
1499:numList
1469:numList
1418:numList
1289:plusone
1256:yields
1210:and in
1153:Epigram
1149:Cayenne
1070:Haskell
1062:Miranda
945:Chicken
681:in the
668:Haskell
664:Miranda
575:at the
563:at the
420:Clojure
336:, is a
324:History
218:Haskell
194:Clojure
120:modular
8213:Fourth
8203:Second
7805:Visual
7772:System
7657:Action
7481:Strict
7252:part 3
7248:part 2
7244:part 1
7084:
7023:
6638:
6397:
6389:
6244:
6202:11 May
6047:Part 2
6043:Part 1
5998:
5928:go.dev
5863:
5719:
5619:
5514:
5455:
5327:
5103:
5093:
4818:
4771:
4724:
4614:
4588:
4578:
4542:
4462:
4454:
4389:
4381:
4190:
4165:
4129:Kotlin
4008:
3936:
3721:
3663:524392
3661:
3615:
3491:. 2015
3303:
3196:Scheme
3133:Elixir
3078:driver
3054:Scheme
3038:Nortel
3019:Erlang
3001:, the
2832:father
2811:mother
2790:father
2769:mother
2757:father
2742:parent
2730:mother
2715:parent
2703:parent
2697:parent
2666:means
2658:means
2634:mother
2616:mother
2576:mother
2570:mother
2481:mother
2441:mother
2408:mother
2364:mother
2331:mother
2303:mother
2285:mother
2211:Kotlin
2209:, and
2187:filter
2183:reduce
2175:lambda
2163:Python
2008:zero?
1972::added
1877:filter
1875:" or "
1860:et al.
1842:Elixir
1838:Erlang
1821:atomic
1797:data.
1741:Pascal
1691:monads
1623:reduce
1563:filter
1554:result
1520:result
1475:length
1430:result
1307:return
1278:is not
1151:, and
1122:Scheme
1068:, and
1014:codata
940:Scheme
612:Scheme
567:, and
466:
416:Scheme
316:, and
298:Python
286:Kotlin
250:XQuery
220:, and
210:Elixir
206:Erlang
202:Racket
190:Scheme
102:, and
74:values
8218:Fifth
8208:Third
8198:First
8136:Level
8082:Roles
7965:Macro
7728:Pipes
7648:Array
7625:Query
7577:Logic
7486:GADTs
7476:Total
7399:Agent
6632:Packt
6613:InfoQ
6559:(PDF)
6395:S2CID
6367:(PDF)
6304:2006.
6007:(PDF)
5996:S2CID
5976:(PDF)
5739:InfoQ
5717:S2CID
5481:(PDF)
5437:(PDF)
5302:(PDF)
5242:(PDF)
5235:(PDF)
5101:S2CID
5022:(PDF)
4816:S2CID
4800:(3).
4769:S2CID
4753:(3).
4722:S2CID
4706:(2).
4652:(4).
4586:S2CID
4564:(PDF)
4540:S2CID
4520:(PDF)
4487:(PDF)
4460:S2CID
4452:JSTOR
4387:S2CID
4379:JSTOR
4219:(PDF)
4212:(PDF)
3767:(PDF)
3760:(PDF)
3719:S2CID
3659:S2CID
3549:(PDF)
3542:(PDF)
3312:(PDF)
3301:S2CID
3281:(PDF)
3178:Many
3097:Scala
3082:robot
3074:OCaml
2956:Helix
2938:Emacs
2904:harry
2880:harry
2838:harry
2826:diana
2817:harry
2654:Here
2541:diana
2529:harry
2465:harry
2453:diana
2355:diana
2337:harry
2315:diana
2309:harry
2260:, or
2241:Many
2207:C++11
2205:3.0,
2197:5.3,
2077:even?
2059:)))))
2038:throw
1963:even?
1960:defn
1929:When
1891:even?
1769:array
1753:Clean
1749:OCaml
1669:(see
1641:=>
1605:=>
1572:=>
1551:const
1415:const
1353:array
1212:Scala
1208:OCaml
1206:, in
1187:is a
1066:Clean
968:loops
925:stack
814:one.
593:OCaml
523:ISWIM
428:Julia
424:Dylan
314:Scala
278:C++11
214:OCaml
163:debug
143:state
137:, or
66:trees
45:is a
7730:and
7377:list
7082:ISBN
7021:ISBN
6829:2020
6805:2020
6783:2020
6636:ISBN
6387:ISSN
6242:ISBN
6204:2013
5861:ISBN
5661:2012
5630:2013
5617:ISBN
5512:ISBN
5453:ISBN
5091:ISBN
5002:2006
4988:Byte
4612:ISBN
4576:ISBN
4418:2013
4296:2020
4227:2009
4188:ISBN
4163:ISBN
4060:2006
4034:2006
4006:ISBN
3934:ISSN
3737:link
3613:ISBN
3368:(12)
3160:Caml
3109:Lisp
3068:and
3058:Lisp
3048:and
2675:Ciao
2662:and
2262:fold
2229:Java
2181:", "
2177:", "
2169:had
2165:and
2147:and
2115:are
2113:Rust
2084:for
2072:Java
2050:str
1981:true
1946:REPL
1846:Akka
1799:Rust
1775:and
1751:and
1739:and
1715:and
1466:<
1365:maps
1359:and
1260:and
1248:was
1145:Agda
962:and
938:The
888:pure
720:and
687:CGAL
606:and
595:and
589:Hope
573:SASL
464:ISBN
426:and
418:and
392:Lisp
368:and
328:The
310:Raku
306:Rust
290:Perl
270:Yacc
264:and
256:for
254:XSLT
244:and
226:Lean
167:test
165:and
159:bugs
114:and
53:and
7635:DSL
6379:doi
5988:doi
5709:doi
5502:by
5445:doi
5441:ACM
5265:doi
5206:doi
5202:ACM
5161:doi
5083:doi
4847:doi
4806:doi
4759:doi
4712:doi
4658:doi
4568:doi
4532:doi
4495:doi
4444:doi
4371:doi
3924:doi
3833:doi
3709:doi
3649:doi
3605:doi
3293:doi
3139:or
3127:or
3125:Elm
2962:as
2960:AST
2712:)).
2668:and
2585:)).
2234:In
2227:In
2195:PHP
2179:map
2159:Lua
2098:for
2094:map
1990:if
1909:mod
1873:map
1844:or
1733:CPU
1673:).
1596:map
1584:===
1508:===
1448:let
1442:for
1427:let
1295:int
1286:int
1274:100
1272:or
1262:100
1141:Coq
1038:or
1002:Coq
970:in
880:gcc
846:or
802:or
679:CAD
581:NPL
474:'s
456:APL
340:of
294:PHP
266:Lex
262:SQL
258:XML
68:of
37:In
8275::
7999:,
7995:,
7991:,
7797:,
7793:,
7522:,
7513:,
7392:,
7388:,
7375:,
7250:,
7246:,
7155:28
7109:.
7039:.
7011:;
7007:;
6971:;
6943:.
6918:.
6856:.
6848:;
6837:^
6813:^
6753:.
6729:.
6704:.
6658:.
6634:.
6611:.
6419:;
6415:;
6393:.
6385:.
6375:17
6373:.
6369:.
6341:.
6317:.
6274:.
6264:.
6190:.
6090:.
6045:,
6024:.
6018:;
5994:.
5984:14
5982:.
5978:.
5950:.
5926:.
5833:.
5809:.
5785:.
5761:.
5737:.
5715:.
5705:17
5703:.
5647:.
5585:.
5531:.
5506:,
5483:.
5451:.
5443:.
5409:.
5385:.
5367:.
5261:22
5259:.
5185:^
5157:10
5155:.
5151:.
5099:.
5089:.
5010:^
4985:.
4955:.
4919:.
4896:.
4843:21
4841:.
4837:.
4814:.
4796:.
4790:.
4767:.
4749:.
4743:.
4720:.
4702:.
4696:.
4648:.
4642:.
4584:.
4574:.
4538:.
4526:.
4522:.
4489:.
4458:.
4450:.
4438:.
4385:.
4377:.
4365:.
4327:.
4312:.
4261:.
4243:.
4161:.
4157:.
4127:.
4116:^
4076:;
4051:.
3955:.
3932:.
3882:^
3851:^
3812:^
3803:.
3793:.
3782:^
3745:^
3733:}}
3729:{{
3705:18
3703:.
3691:^
3657:.
3645:52
3643:.
3639:.
3627:^
3611:.
3591:^
3575:.
3564:^
3512:.
3480:^
3449:^
3418:^
3397:.
3393:.
3381:^
3364:.
3360:.
3348:^
3327:^
3299:.
3289:21
3287:.
3283:.
3191:.
3170:.
3123:,
3111:,
3107:,
3103:,
3101:F#
3099:,
3088:.
3052:.
3044:,
3040:,
3009:.
2871:).
2853:?-
2844::=
2823::=
2802::=
2781::=
2766:).
2754::=
2739:).
2727::=
2694::=
2670:.
2664:,
2660:if
2656::-
2649:).
2631:),
2613::-
2496:).
2478:?-
2456:).
2438:?-
2423:).
2405:?-
2379:).
2361:?-
2346:).
2328:?-
2318:).
2300:).
2264:.
2236:C#
2220:,
2213:.
2203:C#
2201:,
2167:Go
2161:,
2157:,
2108:.
2086:Go
2032:))
1883::
1848:.
1767:,
1659:);
1626:((
1614:10
1532:10
1523:+=
1493:if
1484:++
1323:is
1319:;}
1270:10
1258:10
1147:,
1143:,
1072:.
1064:,
1020:.
974:.
915:.
873:).
865:).
854:.)
787:.
599:.
557:ML
533:FP
498:.
476:FP
320:.
312:,
308:,
304:,
302:Go
300:,
296:,
292:,
288:,
284:,
282:C#
280:,
240:,
224:.
222:F#
216:,
212:,
208:,
204:,
200:,
196:,
192:,
188:,
173:.
41:,
8121:e
8114:t
8107:v
8003:)
7987:(
7971:)
7967:(
7936:)
7932:(
7858:)
7854:(
7826:,
7821:,
7801:)
7789:(
7669:)
7665:(
7659:)
7655:(
7601:)
7597:(
7553:)
7549:(
7462:)
7458:(
7444:)
7440:(
7379:)
7371:(
7294:)
7290:(
7280:e
7273:t
7266:v
7234:.
7219:.
7203:)
7195:(
7190:)
7159:)
7152:(
7090:.
7029:.
6953:.
6928:.
6884:.
6831:.
6807:.
6785:.
6763:.
6739:.
6714:.
6668:.
6644:.
6615:.
6596:.
6568:.
6541:.
6520:.
6459:.
6401:.
6381::
6351:.
6327:.
6250:.
6221:.
6206:.
6175:.
6160:.
6139:.
6115:.
6100:.
6076:.
6049:)
6041:(
6039:.
6016:.
5990::
5960:.
5936:.
5890:.
5869:.
5844:.
5819:.
5795:.
5771:.
5747:.
5723:.
5711::
5688:.
5663:.
5632:.
5595:.
5571:.
5541:.
5487:.
5447::
5419:.
5395:.
5348:.
5333:.
5271:.
5267::
5214:.
5208::
5167:.
5163::
5133:.
5107:.
5085::
5066:.
5045:.
5004:.
4961:.
4925:.
4855:.
4849::
4822:.
4808::
4798:9
4775:.
4761::
4751:8
4728:.
4714::
4704:8
4666:.
4660::
4650:6
4592:.
4570::
4546:.
4534::
4528:3
4501:.
4497::
4466:.
4446::
4440:5
4420:.
4393:.
4373::
4367:2
4350:.
4298:.
4271:.
4229:.
4196:.
4171:.
4137:.
4062:.
4036:.
4014:.
3986:.
3965:.
3940:.
3926::
3907:.
3876:.
3845:.
3835::
3776:.
3739:)
3725:.
3711::
3685:.
3665:.
3651::
3621:.
3607::
3585:.
3558:.
3527:.
3498:.
3474:.
3443:.
3412:.
3399:3
3375:.
3366:3
3342:.
3321:.
3295::
2919:.
2913:=
2910:Y
2907:,
2901:=
2898:X
2895:.
2889:=
2886:Y
2883:,
2877:=
2874:X
2868:Y
2865:,
2862:X
2859:(
2850:.
2841:)
2835:(
2829:.
2820:)
2814:(
2808:.
2799:)
2793:(
2787:.
2778:)
2772:(
2763:X
2760:(
2751:)
2748:X
2745:(
2736:X
2733:(
2724:)
2721:X
2718:(
2709:X
2706:(
2700:(
2691:)
2688:X
2685:(
2646:Y
2643:,
2640:Z
2637:(
2628:Z
2625:,
2622:X
2619:(
2610:)
2607:Y
2604:,
2601:X
2598:(
2582:X
2579:(
2573:(
2567:=
2564:)
2561:X
2558:(
2544:.
2538:=
2535:Y
2532:,
2526:=
2523:X
2520:.
2514:=
2511:Y
2508:,
2502:=
2499:X
2493:Y
2490:,
2487:X
2484:(
2468:.
2462:=
2459:X
2450:,
2447:X
2444:(
2435:.
2429:=
2426:X
2417:,
2414:X
2411:(
2391:.
2385:=
2382:X
2376:X
2373:,
2367:(
2358:.
2352:=
2349:X
2343:X
2340:,
2334:(
2312:,
2306:(
2294:,
2288:(
2145:D
2056:n
2047:(
2041:(
2035:(
2029:1
2026:)
2023:n
2017:(
2011:(
2005:(
2002:)
1999:n
1993:(
1987:(
1984:}
1969:{
1957:(
1924:)
1921:0
1918:)
1915:2
1912:5
1906:(
1900:(
1897:)
1894:5
1888:(
1840:/
1777:K
1773:J
1737:C
1656:0
1653:,
1650:b
1647:+
1644:a
1638:)
1635:b
1632:,
1629:a
1620:.
1617:)
1611:*
1608:a
1602:a
1599:(
1593:.
1590:)
1587:0
1581:2
1578:%
1575:n
1569:n
1566:(
1560:.
1557:=
1541:}
1538:}
1535:;
1529:*
1517:{
1514:)
1511:0
1505:2
1502:%
1496:(
1490:{
1487:)
1481:i
1478:;
1472:.
1463:i
1460:;
1457:0
1454:=
1451:i
1445:(
1439:;
1436:0
1433:=
1424:;
1421:=
1316:1
1313:+
1310:x
1304:{
1301:)
1298:x
1292:(
1254:x
1250:1
1246:x
1242:x
1234:C
775:f
751:x
748:d
744:/
740:d
496:Q
492:K
484:J
462:(
268:/
252:/
246:Q
242:K
238:J
234:R
34:.
20:)
Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.