1061:) the variable used as argument—something that will be seen by its caller. Call by reference can therefore be used to provide an additional channel of communication between the called function and the calling function. Pass by reference can significantly improve performance: calling a function with a many-megabyte structure as an argument does not have to copy the large structure, only the reference to the structure (which is generally a machine word and only a few bytes). However, a call-by-reference language makes it more difficult for a programmer to track the effects of a function call, and may introduce subtle bugs.
3346:
1883:", or "objects", have reference semantics, and it is the addresses of these pointers that are passed into the function. Like call by value, the value of the address passed is a copy, and direct assignment to the parameter of the function overwrites the copy and is not visible to the calling function. Like call by reference, mutating the target of the pointer is visible to the calling function. Mutations of a mutable object within the function are visible to the caller because the object is not copied or cloned—it is
1045:, values and data structures are immutable, so there is no possibility for a function to modify any of its arguments. As such, there is typically no semantic difference between passing by value and passing by reference or a pointer to the data structure, and implementations frequently use call by reference internally for the efficiency benefits. Nonetheless, these languages are typically described as call by value languages.
3691:
638:, which does not evaluate any of the arguments until they are needed in the body of the function. Normal order evaluation has the property that it terminates without error whenever any other evaluation order would have terminated without error. The name "normal order" comes from the lambda calculus, where normal order reduction will find a normal form if there is one (it is a "normalizing"
1630:
one another (i.e., point to the same variable in the caller's environment). Under call by reference, writing to one argument will affect the other during the function's execution. Under call by copy-restore, writing to one argument will not affect the other during the function's execution, but at the
3282:
Call-by-future is similar to call by need in that values are computed only once. With careful handling of errors and nontermination, in particular terminating futures partway through if it is determined they will not be needed, call-by-future also has the same termination properties as call-by-need
1878:
Call by sharing (also known as "pass by sharing", "call by object", or "call by object-sharing") is an evaluation strategy that is intermediate between call by value and call by reference. Rather than every variable being exposed as a reference, only a specific class of values, termed "references",
3202:
The strategy is non-deterministic, as the evaluation can occur at any time between creation of the future (i.e., when the expression is given) and use of the future's value. The strategy is non-strict because the function body may return a value before the arguments are evaluated. However, in most
3187:
If implemented with processes or threads, creating a future will spawn one or more new processes or threads (for the promises), accessing the value will synchronize these with the main thread, and terminating the computation of the future corresponds to killing the promises computing its value. If
3183:
with the flow of the rest of the program. When a future A requires the value of another future B that has not yet been computed, future A blocks until future B finishes computing and has a value. If future B has already finished computing the value is returned immediately. Conditionals block until
3034:
Call-by-name evaluation is occasionally preferable to call-by-value evaluation. If a function's argument is not used in the function, call by name will save time by not evaluating the argument, whereas call by value will evaluate it regardless. If the argument is a non-terminating computation, the
1029:
in the implementation semantics. However, the circumlocution "call by value where the value is a reference" has become common in some languages, for example, the Java community. Compared to traditional pass by value, the value which is passed is not a value as understood by the ordinary meaning of
692:
In call by value (or pass by value), the evaluated value of the argument expression is bound to the corresponding variable in the function (frequently by copying the value into a new memory region). If the function or procedure is able to assign values to its parameters, only its local variable is
670:
With normal order evaluation, expressions containing an expensive computation, an error, or an infinite loop will be ignored if not needed, allowing the specification of user-defined control flow constructs, a facility not available with applicative order evaluation. Normal order evaluation uses
2344:
in C is only a simulation of call-by-reference using pointers. Under this "simulation" view, mutable variables in C are not first-class (that is, l-values are not expressions), rather pointer types are. In this view, the presented swap program is syntactic sugar for a program that uses pointers
1622:
community)—is a variation of call by reference. With call by copy-restore, the contents of the argument are copied to a new variable local to the call invocation. The function may then modify this variable, similarly to call by reference, but as the variable is local, the modifications are not
182:
This is a table of evaluation strategies and representative languages by year introduced. The representative languages are listed in chronological order, starting with the language(s) that introduced the strategy and followed by prominent languages that use the strategy.
2123:
is a parameter passing method where the address of the argument is passed as the formal parameter. Inside the function, the address (pointer) may be used to access or modify the value of the argument. For example, the swap operation can be implemented as follows in C:
151:, then evaluate the function's body with those references passed in. This gives the function the ability to look up the original argument values passed in through dereferencing the parameters (some languages use specific operators to perform this), to modify them via
3283:
evaluation. However, call-by-future may perform unnecessary speculative work compared to call-by-need, such as deeply evaluating a lazy data structure. This can be avoided by using lazy futures that do not start computation until it is certain the value is needed.
1064:
Due to variation in syntax, the difference between call by reference (where the reference type is implicit) and call by sharing (where the reference type is explicit) is often unclear on first glance. A simple litmus test is if it's possible to write a traditional
646:
is classified in this article as a binding technique rather than an evaluation order. But this distinction is not always followed and some authors define lazy evaluation as normal order evaluation or vice-versa, or confuse non-strictness with lazy evaluation.
1631:
end of the call, the values of the two arguments may differ, and it is unclear which argument is copied back first and therefore what value the caller's variable receives. For example, Ada specifies that the copy-out assignment for each
3010:. Unification must be classified as a strict binding strategy because it is fully performed. However, unification can also be performed on unbounded variables, so calls may not necessarily commit to final values for all its variables.
3027:) and then left to be evaluated whenever they appear in the function. If an argument is not used in the function body, the argument is never evaluated; if it is used several times, it is re-evaluated each time it appears. (See
3295:). After that time has passed, evaluation is aborted and the function is applied using call by need. This approach avoids some of call-by-need's runtime expenses while retaining desired termination characteristics.
1930:(objects). The term "call by sharing" as used in this article is not in common use; the terminology is inconsistent across different sources. For example, in the Java community, they say that Java is call by value.
2989:
Semantically, this is equivalent to the C examples. As such, many authors consider call-by-address to be a unique parameter passing strategy distinct from call-by-value, call-by-reference, and call-by-sharing.
2024:
In contrast, assignments within a function are not noticeable to the caller. For example, this code binds the formal argument to a new object, but it is not visible to the caller because it does not mutate
614:
and Java evaluate function arguments left-to-right. C leaves the order undefined. Scheme requires the execution order to be the sequential execution of an unspecified permutation of the arguments.
1937:, there is no real difference between call by sharing and call by value, except if object identity is visible in the language. The use of call by sharing with mutable objects is an alternative to
3172:
evaluation strategy combining non-strict semantics with eager evaluation. The method requires fine-grained dynamic scheduling and synchronization but is suitable for massively parallel machines.
2786:
operates on pointers and cannot change the pointers themselves, but only the values the pointers point to, this view holds that C's main evaluation strategy is more similar to call-by-sharing.
1623:
visible outside of the call invocation during the call. When the function call returns, the updated contents of this variable are copied back to overwrite the original argument ("restored").
3023:
Call by name is an evaluation strategy where the arguments to a function are not evaluated before the function is called—rather, they are substituted directly into the function body (using
3101:
is a well-known language that uses call-by-need evaluation. Because evaluation of expressions may happen arbitrarily far into a computation, Haskell supports only side effects (such as
576:. For this reason language standards such as C++ traditionally left the order unspecified, although languages such as Java and C# define the evaluation order as left-to-right and the
3981:
1025:
Strictly speaking, under call by value, no operations performed by the called routine can be visible to the caller, other than as part of the return value. This implies a form of
3291:
Optimistic evaluation is a call-by-need variant where the function's argument is partly evaluated in a call-by-value style for some amount of time (which may be adjusted at
3199:, creating a future calls a coroutine (an async function), which may yield to the caller, and in turn be yielded back to when the value is used, cooperatively multitasking.
654:, where evaluation evaluates the left expression but may skip the right expression if the result can be determined—for example, in a disjunctive expression (OR) where
591:
is a family of evaluation orders in which a function's arguments are evaluated completely before the function is applied. This has the effect of making the function
4756:
5118:
1034:
handle. Mutations to this reference handle are visible in the caller. Due to the visible mutation, this form of "call by value" is more properly referred to as
634:
is an evaluation order that is not strict, that is, a function may return a result before all of its arguments are fully evaluated. The prototypical example is
2340:. Under this view, C supports the call-by-reference parameter passing strategy. Other authors take a differing view that the presented implementation of
4810:
4783:
1263:
intent implements call-by-reference; any variable can be implicitly converted to a reference handle. In contrast the closest one can get in Java is:
4173:
1941:: the parameter is not assigned to (the argument is not overwritten and object identity is not changed), but the object (argument) is mutated.
3905:
83:
4693:
679:
used in applicative order evaluation. Normal order evaluation has historically had a lack of usable debugging tools due to its complexity.
4353:
3716:
595:, i.e. the function's result is undefined if any of the arguments are undefined, so applicative order evaluation is more commonly called
701:, passing an array by value will cause the entire array to be copied, and any mutations to this array will be invisible to the caller:
4540:
1626:
The semantics of call by copy-restore is similar in many cases to call by reference, but differs when two or more function arguments
607:. Some authors refer to strict evaluation as "call by value" due to the call-by-value binding strategy requiring strict evaluation.
4072:
3091:
variant of call by name, where, if the function argument is evaluated, that value is stored for subsequent use. If the argument is
662:
is encountered, and so forth. Conditional expressions similarly use non-strict evaluation - only one of the branches is evaluated.
3035:
advantage is enormous. However, when the function argument is used, call by name is often slower, requiring a mechanism such as a
4096:
3954:
1848:
If the program returned 1 it would be copying right-to-left, and under call by reference semantics the program would return 3.
4862:
398:
of the expression, the evaluation order defines the order in which expressions are evaluated. For example, the Python program
4872:
4820:
4793:
4766:
4619:
4393:
4363:
4156:
4129:
3824:
3584:
3547:
3464:
3430:
1639:
parameter occurs in an arbitrary order. From the following program (illegal in Ada 2012) it can be seen that the behavior of
155:
as if they were local variables, and to return values via the references. This is the call-by-reference evaluation strategy.
4926:
Proceedings of the seventh international conference on
Functional programming languages and computer architecture - FPCA '95
4241:
3893:
Liskov, Barbara; Atkinson, Russ; Bloom, Toby; Moss, Eliot; Schaffert, Craig; Scheifler, Craig; Snyder, Alan (October 1979).
3036:
1057:
to the variable used as argument, rather than a copy of its value. This typically means that the function can modify (i.e.,
5126:
3095:(i.e., free of side effects), this produces the same results as call by name, saving the cost of recomputing the argument.
1870:, as unlike call-by-reference it does not require frequent communication between threads of execution for variable access.
4323:
3309:
1618:
Call by copy-restore—also known as "copy-in copy-out", "call by value result", "call by value return" (as termed in the
5020:
4663:
3647:
3292:
5088:
5064:
4090:
3675:
3618:
3389:
3367:
124:
is distinct, although some authors conflate the two terms and the definition of each term is not widely agreed upon.
76:
3360:
618:
similarly leaves the order unspecified, but in practice evaluates arguments right-to-left due to the design of its
1840:-- test_copy_restore.adb:12:10: warning: writable actual for "A" overlaps with actual for "B"
5051:
4889:
3109:. This eliminates any unexpected behavior from variables whose values change prior to their delayed evaluation.
4941:
4462:
3507:
3180:
3106:
3003:
2120:
569:
350:
104:
is a set of rules for evaluating expressions. The term is often used to refer to the more specific notion of a
599:. Furthermore, a function call is performed as soon as it is encountered in a procedure, so it is also called
3149:
3054:
3024:
1899:
1058:
1053:
Call by reference (or pass by reference) is an evaluation strategy where a parameter is bound to an implicit
1026:
698:
611:
321:
228:
158:
Evaluation strategy is part of the semantics of the programming language definition. Some languages, such as
152:
17:
5160:
4977:
3152:. Macro substitution may therefore result in variable capture, leading to mistakes and undesired behavior.
3116:'s implementation of call by need, all arguments are passed, meaning that R allows arbitrary side effects.
1054:
1031:
329:
140:
113:
69:
3203:
implementations, execution may still get stuck evaluating an unneeded argument. For example, the program
3062:
1907:
1903:
325:
317:
292:
1895:
1042:
313:
266:
4435:
Nilsson, Henrik (1999). "Tracing piece by piece: Affordable debugging for lazy functional languages".
4410:
3482:
Proceedings of the 18th ACM SIGPLAN-SIGACT symposium on
Principles of programming languages - POPL '91
1919:
5110:
4996:
4445:
4282:
3411:
Araki, Shota; Nishizaki, Shin-ya (November 2014). "Call-by-name evaluation of RPC and RMI calculi".
3490:
3354:
3113:
651:
374:
300:
224:
57:
3894:
5141:
4701:
5075:
4440:
4277:
3485:
3371:
3169:
573:
4146:
4119:
3454:
3184:
their condition is evaluated, and lambdas do not create futures until they are fully applied.
3148:
Call by macro expansion is similar to call by name, but uses textual substitution rather than
4565:
4383:
4306:
3929:
3604:
3537:
3127:
3042:
1867:
3844:
3564:
3412:
1610:
type must be used to introduce a handle. Java is call-by-sharing but not call-by-reference.
4200:
3176:
3050:
1627:
1030:
value, such as an integer that can be written as a literal, but an implementation-internal
395:
163:
97:
4918:
4836:
4036:
8:
694:
391:
5083:. Lecture Notes in Computer Science. Vol. 2566. Springer-Verlag. pp. 420–435.
4741:
4606:
4486:
4437:
Proceedings of the fourth ACM SIGPLAN international conference on
Functional programming
4076:
5098:
5046:
5016:
4973:
4947:
4468:
4223:
4068:
3831:
Was probably the first language to systematically exploit the power of lazy evaluation.
3765:
3600:
3513:
3329:
3324:
3157:
3066:
3028:
3007:
639:
171:
121:
47:
4586:
4291:
3480:
Crank, Erik; Felleisen, Matthias (1991). "Parameter-passing and the lambda calculus".
3168:"Call by future", also known as "parallel call by name" or "lenient evaluation", is a
108:
that defines the kind of value that is passed to the function for each parameter (the
5084:
5060:
4937:
4890:"A Game of Paradigms: A Usability Study of Functional Idioms in Gameplay Programming"
4868:
4816:
4789:
4762:
4615:
4458:
4389:
4359:
4152:
4125:
4086:
4010:
3820:
3671:
3643:
3614:
3580:
3543:
3503:
3460:
3426:
2999:
365:
354:
52:
4472:
3769:
693:
assigned—that is, anything passed into a function call is unchanged in the caller's
4951:
4929:
4723:
4450:
4287:
4227:
4215:
3812:
3755:
3572:
3517:
3495:
3418:
3304:
1938:
1934:
1923:
619:
5034:
3816:
3785:
3319:
3153:
3137:
3122:
is the most common implementation of call-by-need semantics, but variations like
3119:
3082:
1863:
650:
Boolean expressions in many languages use a form of non-strict evaluation called
643:
592:
572:, but it also affects the performance of the code because a rigid order inhibits
42:
4385:
Functional
Programming in C#: Classic Programming Techniques for Modern Projects
3576:
4518:
3986:
3959:
3422:
3102:
1944:
For example, in Python, lists are mutable and passed with call by sharing, so:
1891:
5147:, implementing a graph-based machine for several common evaluation strategies.
3179:
for the function's body and each of its arguments. These futures are computed
665:
5154:
3092:
4671:
4268:
Tremblay, G. (April 2000). "Lenient evaluation is neither strict nor lazy".
5144:
4978:"Optimistic Evaluation: a fast evaluation strategy for non-strict programs"
3057:
provides agents, which represent an operation to be evaluated when needed.
5074:
Sestoft, Peter (2002). Mogensen, T; Schmidt, D; Sudborough, I. H. (eds.).
4933:
4454:
4219:
3760:
3743:
5022:
Optimistic
Evaluation: A Fast Evaluation Strategy for Non-Strict Programs
4352:
Mazzola, Guerino; Milmeister, GĂ©rard; Weissmann, Jody (21 October 2004).
4064:
3196:
3088:
1915:
1851:
When the reference is passed to the caller uninitialized (for example an
499:
due to Python's left-to-right evaluation order, but a similar program in
3499:
4995:
Baker-Finch, Clem; King, David; Hall, Jon; Trinder, Phil (1999-03-10).
1922:(references, records, arrays, objects, and other compound data types),
1911:
1880:
676:
262:
159:
4636:
5056:
4082:
3639:
3610:
3189:
1859:
parameter), this evaluation strategy may be called "call by result".
4174:"EXP30-C. Do not depend on the order of evaluation for side effects"
3006:
of the terms involved combined with the application of some form of
2793:
to be declared and used with a very lightweight "reference" syntax:
4308:
Efficient evaluation of normal order through strictness information
245:
1837:-- $ gnatmake -gnatd.E test_copy_restore.adb; ./test_copy_restore
170:, support multiple evaluation strategies. Some languages define a
5010:(1). Faculty of Mathematics & Computing, The Open University.
4513:
4511:
4509:
4507:
3098:
1619:
577:
296:
203:
167:
5028:. International Conference on Functional Programming. ACM Press.
4324:"Applicative vs Normal Order Evaluation in Functional Languages"
3633:
3002:, the evaluation of an expression may simply correspond to the
279:
249:
232:
5123:
Call by Value and Call by
Reference in C Programming explained
4504:
4637:"RPC: Remote Procedure Call Protocol Specification Version 2"
3058:
672:
615:
500:
370:
342:
220:
4148:
JavaScript: Functional
Programming for JavaScript Developers
3982:"Passing Arguments by Value and by Reference - Visual Basic"
3744:"A Machine-Oriented Logic Based on the Resolution Principle"
3275:, and output 1, or may result in an error due to evaluating
4242:"Why are OCaml function arguments evaluated right-to-left?"
4199:
Anglade, S.; Lacrampe, J. J.; Queinnec, C. (October 1994).
3721:
CS 536: Introduction to
Programming Languages and Compilers
3314:
3193:
1640:
666:
Comparison of applicative order and normal order evaluation
658:
is encountered, or in a conjunctive expression (AND) where
207:
162:, have variants with different evaluation strategies. Some
5039:
CSE 130: Programming
Languages: Principles & Paradigms
4994:
4351:
4145:
Antani, Ved; Timms, Simon; Mantyla, Dan (31 August 2016).
3692:"Avoid Unnecessary Copies of Data - MATLAB & Simulink"
2353:
have been added to highlight the similarities to the Java
4867:. Springer Science & Business Media. pp. 10–11.
3904:. Massachusetts Institute of Technology. pp. 14–15.
1927:
346:
4608:
Ada 2012 rationale: the language, the standard libraries
580:
standard has added constraints on the evaluation order.
4198:
3892:
3888:
3886:
3884:
3882:
3880:
1918:(lists, records, dates, and script objects), OCaml and
5119:"Call by Value and Call by Reference in C Programming"
4919:"How much non-strictness do lenient programs require?"
4809:
Srivastava, S. K.; Srivastava, Deepali (6 June 2018).
4788:. Springer Science & Business Media. p. 232.
4358:. Springer Science & Business Media. p. 323.
3065:
programs can accomplish similar lazy evaluation using
1898:
language. It is used by many modern languages such as
4965:
4698:
CS 145 Programming
Languages Lab 9: Parameter Passing
3542:. Springer Science & Business Media. p. 61.
3536:
Wilhelm, Reinhard; Seidl, Helmut (10 November 2010).
1914:(objects), Scheme (data structures such as vectors),
4997:"An Operational Semantics for Parallel Call-by-Need"
4808:
4573:
MPRI Course 2-36-1: Proof of Program (Lecture notes)
3877:
3563:
Nita, Stefania Loredana; Mihailescu, Marius (2017).
568:
The evaluation order is mainly visible in code with
4355:
Comprehensive Mathematics for Computer Scientists 2
3140:is an efficient implementation of lazy evaluation.
5014:
4144:
3786:"Computational logic: The unification computation"
2021:method modifies the object on which it is called.
1069:function in the language. For example in Fortran:
4916:
4655:
4078:Structure and interpretation of computer programs
3453:Turbak, Franklyn; Gifford, David (18 July 2008).
3156:avoid this problem by checking for and replacing
3031:for a programming technique that exploits this.)
116:of a function call, and if so in what order (the
5152:
3061:provides call by name with function parameters.
3013:
4917:Schauser, Klaus E.; Goldstein, Seth C. (1995).
4785:Guide to Assembly Language Programming in Linux
4037:"Stricter Expression Evaluation Order in C++17"
3871:Semantics and Pragmatics of the Lambda Calculus
565:due to OCaml's right-to-left evaluation order.
4724:"Tcl Library Procedures - Tcl_Obj manual page"
4700:. George Washington University. Archived from
4063:
3562:
3479:
3410:
4614:. Heidelberg: Springer. p. 15-16,87-88.
3807:Bundy, Alan; Wallen, Lincoln (1984). "SASL".
3783:
3741:
3735:
3452:
3045:can simulate call by name using delegates or
1643:is to copy in left-to-right order on return:
675:for unevaluated expressions, compared to the
77:
3661:
3659:
3535:
1902:(the shared values being called "objects"),
682:
4971:
4912:
4910:
4888:McCollin, Thomas Gwynfryn; Morell, Tobias.
4263:
4261:
4259:
4257:
4255:
3955:"Passing Parameters - C# Programming Guide"
3806:
2789:C++ confuses the issue further by allowing
697:when the function returns. For example, in
4887:
4331:CSE 505: Concepts of Programming Languages
4081:(2nd ed.). Cambridge, Massachusetts:
4005:
4003:
3809:Catalogue of Artificial Intelligence Tools
3670:(Fourth ed.). Waltham, MA: Elsevier.
3634:Daniel P. Friedman; Mitchell Wand (2008).
3143:
3123:
84:
70:
5032:
4781:
4444:
4281:
3868:
3759:
3656:
3531:
3529:
3527:
3489:
3390:Learn how and when to remove this message
127:To illustrate, executing a function call
4907:
4377:
4375:
4267:
4252:
3456:Design Concepts in Programming Languages
3353:This article includes a list of general
3286:
625:
5077:Demonstrating Lambda Calculus Reduction
5073:
4860:
4837:"Mutable Variables and Reference Types"
4782:Dandamudi, Sivarama P. (15 July 2005).
4634:
4628:
4434:
4345:
4321:
4059:
4057:
4034:
4000:
3980:Dollard, Kathleen (15 September 2021).
3979:
1613:
14:
5153:
5045:
4734:
4604:
4311:(MSc). University of Utah. p. 10.
4304:
4035:Filipek, Bartlomiej (16 August 2021).
3952:
3599:
3524:
3130:implement call by need using the type
2993:
2345:throughout, for example this program (
1862:This strategy has gained attention in
622:. All of these are strict evaluation.
4691:
4381:
4372:
4201:"Semantics of combinations in scheme"
4151:. Packt Publishing Ltd. p. 614.
4124:. Packt Publishing Ltd. p. 106.
4118:Reese, Richard M. (14 October 2015).
4117:
3665:
3593:
3049:parameters. The latter results in an
27:Programming language evaluation rules
4864:Multi-Paradigm Programming using C++
4566:"Call by Reference, Aliasing Issues"
4121:Learning Java Functional Programming
4073:"Normal Order and Applicative Order"
4054:
3930:"PHP: Passing by Reference - Manual"
3339:
3071:java.util.function.Supplier<T>
1887:, hence the name "call by sharing".
1048:
1035:
583:
385:
4754:
4388:. John Wiley and Sons. p. 91.
4171:
3842:
3636:Essentials of Programming Languages
3310:Comparison of programming languages
2119:, pass by address, or call/pass by
24:
4988:
4588:Ada 2022 Language Reference Manual
4538:
4415:Haskell Implementors Workshop 2012
4408:
3869:Wadsworth, Christopher P. (1971).
3414:Theory and Practice of Computation
3359:it lacks sufficient corresponding
2111:
1873:
1855:parameter in Ada as opposed to an
25:
5172:
5134:
5033:Ludäscher, Bertram (2001-01-24).
4815:. BPB Publications. p. 206.
4661:
3714:
3638:(third ed.). Cambridge, MA:
3539:Compiler Design: Virtual Machines
3163:
2336:as part of the syntax of calling
1890:The technique was first noted by
1020:
131:may first evaluate the arguments
4519:"Java is Pass-by-Value, Dammit!"
4411:"Why can't I get a stack trace?"
3344:
687:
5052:Types and Programming Languages
4895:. Aalborg University. p. 6
4881:
4854:
4829:
4802:
4775:
4761:. LeoSudo Inc. pp. 79–80.
4748:
4716:
4685:
4598:
4579:
4558:
4532:
4479:
4428:
4402:
4382:Sturm, Oliver (11 April 2011).
4315:
4298:
4234:
4192:
4165:
4138:
4111:
4028:
3973:
3946:
3922:
3911:from the original on 2006-09-22
3902:Laboratory for Computer Science
3862:
3836:
3800:
3777:
3708:
3668:Programming language pragmatics
3606:Types and Programming Languages
3276:
3272:
3268:
3076:
3018:
2790:
2783:
2354:
2350:
2346:
2341:
2337:
2026:
1856:
1852:
1636:
1632:
4861:Vermeir, Dirk (28 June 2011).
4744:. Microsoft. 15 November 2016.
4742:"CA1021: Avoid out parameters"
4594:, 13 October 2023, p. 215
3953:Wagner, Bill (12 April 2023).
3684:
3627:
3556:
3473:
3446:
3404:
112:) and whether to evaluate the
13:
1:
4322:Borning, Alan (Autumn 1999).
4292:10.1016/S0096-0551(01)00006-6
3817:10.1007/978-3-642-96868-6_222
3335:
3150:capture-avoiding substitution
3053:being given to the function.
3025:capture-avoiding substitution
3014:Non-strict binding strategies
2358:
1027:purely functional programming
4635:Thurlow, Robert (May 2009).
4180:. Carnegie Mellon University
3569:Practical Concurrent Haskell
339:Call by reference parameters
7:
4108:See also footnote Temp 576.
3843:Fay, Colin (30 July 2018).
3666:Scott, Michael Lee (2016).
3577:10.1007/978-1-4842-2781-7_1
3298:
1043:purely functional languages
671:complex structures such as
632:non-strict evaluation order
10:
5177:
4755:Leo, Ray (November 1996).
4694:"Is Scheme call-by-value?"
4692:Jones, Rhys Price (2010).
4333:. University of Washington
4305:George, Lai (March 1987).
4178:SEI CERT C Coding Standard
3742:J.A. Robinson (Jan 1965).
3459:. MIT Press. p. 309.
3423:10.1142/9789814612883_0001
3080:
1926:(rtables and tables), and
106:parameter-passing strategy
4208:ACM SIGPLAN Lisp Pointers
3873:(PhD). Oxford University.
3723:. University of Wisconsin
3160:that are not parameters.
2782:Because in this program,
683:Strict binding strategies
5140:The interactive on-line
3205:
2795:
2363:
2357:call-by-sharing program
2126:
2031:
1946:
1645:
1265:
1071:
703:
652:short-circuit evaluation
505:
400:
192:Representative languages
177:
58:Short-circuit evaluation
5142:Geometry of Interaction
5035:"CSE 130 lecture notes"
4487:"Open array parameters"
3845:"About lazy evaluation"
3374:more precise citations.
3175:The strategy creates a
3144:Call by macro expansion
1939:input/output parameters
636:normal order evaluation
139:, store the results in
4758:Little C++ (Made Easy)
3895:"CLU Reference Manual"
3784:J.A. Robinson (1971).
3774:; Here: sect.5.8, p.32
1868:remote procedure calls
626:Non-strict evaluation
574:instruction scheduling
195:Year first introduced
4934:10.1145/224164.224208
4605:Barnes, John (2013).
4455:10.1145/317636.317782
4220:10.1145/382109.382669
3761:10.1145/321250.321253
3287:Optimistic evaluation
3124:optimistic evaluation
1259:Therefore, Fortran's
364:Call by reference to
164:declarative languages
34:Evaluation strategies
4928:. pp. 216–225.
3790:Machine Intelligence
3051:abstract syntax tree
1614:Call by copy-restore
396:abstract syntax tree
259:Call by copy-restore
143:or memory locations
98:programming language
5161:Evaluation strategy
5047:Pierce, Benjamin C.
5017:Peyton Jones, Simon
4974:Jones, Simon Peyton
4541:"PARAMETER PASSING"
4248:. 30 November 2017.
4172:Seacord, Robert C.
4069:Sussman, Gerald Jay
4015:en.cppreference.com
3717:"Parameter Passing"
3601:Pierce, Benjamin C.
3500:10.1145/99583.99616
3188:implemented with a
3047:Expression<T>
2994:Call by unification
2332:Some authors treat
584:Strict evaluation
392:order of operations
276:Call by unification
189:Evaluation strategy
102:evaluation strategy
4704:on 16 October 2014
4491:www.freepascal.org
4439:. pp. 36–47.
4270:Computer Languages
3748:Journal of the ACM
3330:Partial evaluation
3325:Call-by-push-value
3158:shadowed variables
3087:Call by need is a
3067:lambda expressions
1606:where an explicit
640:reduction strategy
172:calling convention
122:reduction strategy
48:Partial evaluation
4874:978-1-4471-0311-0
4822:978-93-87284-94-4
4795:978-0-387-25897-3
4768:978-0-9654634-1-6
4621:978-3-642-45210-9
4545:cgi.csc.liv.ac.uk
4395:978-0-470-74458-1
4365:978-3-540-20861-7
4158:978-1-78712-557-5
4131:978-1-78528-935-4
3826:978-3-540-13938-6
3696:www.mathworks.com
3586:978-1-4842-2780-0
3549:978-3-642-14909-2
3466:978-0-262-30315-6
3432:978-981-4612-87-6
3400:
3399:
3392:
3105:) via the use of
3000:logic programming
2735:"%d %d"
2297:"%d %d"
1935:immutable objects
1831:Test_Copy_Restore
1669:Test_Copy_Restore
1565:"%d %d"
1049:Call by reference
605:greedy evaluation
597:strict evaluation
589:Applicative order
386:Evaluation orders
383:
382:
355:Visual Basic .NET
200:Call by reference
120:). The notion of
94:
93:
53:Remote evaluation
16:(Redirected from
5168:
5130:
5125:. Archived from
5114:
5108:
5104:
5102:
5094:
5082:
5070:
5042:
5029:
5027:
5015:Ennals, Robert;
5011:
5001:
4982:
4981:
4972:Ennals, Robert;
4969:
4963:
4962:
4960:
4958:
4923:
4914:
4905:
4904:
4902:
4900:
4894:
4885:
4879:
4878:
4858:
4852:
4851:
4849:
4847:
4833:
4827:
4826:
4806:
4800:
4799:
4779:
4773:
4772:
4752:
4746:
4745:
4738:
4732:
4731:
4720:
4714:
4713:
4711:
4709:
4689:
4683:
4682:
4680:
4679:
4670:. Archived from
4664:"Call by Object"
4662:Lundh, Fredrik.
4659:
4653:
4652:
4650:
4648:
4632:
4626:
4625:
4613:
4602:
4596:
4595:
4593:
4583:
4577:
4576:
4570:
4562:
4556:
4555:
4553:
4551:
4536:
4530:
4529:
4527:
4526:
4515:
4502:
4501:
4499:
4497:
4483:
4477:
4476:
4448:
4432:
4426:
4425:
4423:
4421:
4406:
4400:
4399:
4379:
4370:
4369:
4349:
4343:
4342:
4340:
4338:
4328:
4319:
4313:
4312:
4302:
4296:
4295:
4285:
4265:
4250:
4249:
4238:
4232:
4231:
4205:
4196:
4190:
4189:
4187:
4185:
4169:
4163:
4162:
4142:
4136:
4135:
4115:
4109:
4107:
4105:
4104:
4095:. Archived from
4061:
4052:
4051:
4049:
4047:
4032:
4026:
4025:
4023:
4021:
4011:"History of C++"
4007:
3998:
3997:
3995:
3994:
3977:
3971:
3970:
3968:
3967:
3950:
3944:
3943:
3941:
3940:
3926:
3920:
3919:
3917:
3916:
3910:
3899:
3890:
3875:
3874:
3866:
3860:
3859:
3857:
3855:
3840:
3834:
3833:
3804:
3798:
3797:
3781:
3775:
3773:
3763:
3739:
3733:
3732:
3730:
3728:
3715:Hasti, Rebecca.
3712:
3706:
3705:
3703:
3702:
3688:
3682:
3681:
3663:
3654:
3653:
3631:
3625:
3624:
3597:
3591:
3590:
3560:
3554:
3553:
3533:
3522:
3521:
3493:
3477:
3471:
3470:
3450:
3444:
3443:
3441:
3439:
3408:
3395:
3388:
3384:
3381:
3375:
3370:this article by
3361:inline citations
3348:
3347:
3340:
3305:Beta normal form
3278:
3274:
3270:
3267:may either have
3263:
3260:
3257:
3254:
3251:
3248:
3245:
3242:
3239:
3236:
3233:
3230:
3227:
3224:
3221:
3218:
3215:
3212:
3209:
3177:future (promise)
3133:
3072:
3048:
2985:
2982:
2979:
2976:
2973:
2970:
2967:
2964:
2961:
2958:
2955:
2952:
2949:
2946:
2943:
2940:
2937:
2934:
2931:
2928:
2925:
2922:
2919:
2916:
2913:
2910:
2907:
2904:
2901:
2898:
2895:
2892:
2889:
2886:
2883:
2880:
2877:
2874:
2871:
2868:
2865:
2862:
2859:
2856:
2853:
2850:
2847:
2844:
2841:
2838:
2835:
2832:
2829:
2826:
2823:
2820:
2817:
2814:
2811:
2808:
2805:
2802:
2799:
2792:
2785:
2778:
2775:
2772:
2769:
2766:
2763:
2760:
2757:
2754:
2751:
2748:
2745:
2742:
2739:
2736:
2733:
2730:
2727:
2724:
2721:
2718:
2715:
2712:
2709:
2706:
2703:
2700:
2697:
2694:
2691:
2688:
2685:
2682:
2679:
2676:
2673:
2670:
2667:
2664:
2661:
2658:
2655:
2652:
2649:
2646:
2643:
2640:
2637:
2634:
2631:
2628:
2625:
2622:
2619:
2616:
2613:
2610:
2607:
2604:
2601:
2598:
2595:
2592:
2589:
2586:
2583:
2580:
2577:
2574:
2571:
2568:
2565:
2562:
2559:
2556:
2553:
2550:
2547:
2544:
2541:
2538:
2535:
2532:
2529:
2526:
2523:
2520:
2517:
2514:
2511:
2508:
2505:
2502:
2499:
2496:
2493:
2490:
2487:
2484:
2481:
2478:
2475:
2472:
2469:
2466:
2463:
2460:
2457:
2454:
2451:
2448:
2445:
2442:
2439:
2436:
2433:
2430:
2427:
2424:
2421:
2418:
2415:
2412:
2409:
2406:
2403:
2400:
2397:
2394:
2391:
2388:
2385:
2382:
2379:
2376:
2373:
2370:
2367:
2356:
2352:
2348:
2343:
2339:
2335:
2328:
2325:
2322:
2319:
2316:
2313:
2310:
2307:
2304:
2301:
2298:
2295:
2292:
2289:
2286:
2283:
2280:
2277:
2274:
2271:
2268:
2265:
2262:
2259:
2256:
2253:
2250:
2247:
2244:
2241:
2238:
2235:
2232:
2229:
2226:
2223:
2220:
2217:
2214:
2211:
2208:
2205:
2202:
2199:
2196:
2193:
2190:
2187:
2184:
2181:
2178:
2175:
2172:
2169:
2166:
2163:
2160:
2157:
2154:
2151:
2148:
2145:
2142:
2139:
2136:
2133:
2130:
2107:
2104:
2101:
2098:
2095:
2092:
2089:
2086:
2083:
2080:
2077:
2074:
2071:
2068:
2065:
2062:
2059:
2056:
2053:
2050:
2047:
2044:
2041:
2038:
2035:
2028:
2020:
2016:
2010:
2007:
2004:
2001:
1998:
1995:
1992:
1989:
1986:
1983:
1980:
1977:
1974:
1971:
1968:
1965:
1962:
1959:
1956:
1953:
1950:
1894:in 1974 for the
1858:
1854:
1844:
1841:
1838:
1835:
1832:
1829:
1826:
1823:
1820:
1817:
1814:
1811:
1808:
1805:
1804:"X = "
1802:
1799:
1796:
1793:
1790:
1787:
1784:
1781:
1778:
1775:
1772:
1769:
1766:
1763:
1760:
1757:
1754:
1751:
1748:
1745:
1742:
1739:
1736:
1733:
1730:
1727:
1724:
1721:
1718:
1715:
1712:
1709:
1706:
1703:
1700:
1697:
1694:
1691:
1688:
1685:
1682:
1679:
1676:
1673:
1670:
1667:
1664:
1661:
1658:
1655:
1652:
1649:
1638:
1634:
1609:
1602:
1599:
1596:
1593:
1590:
1587:
1584:
1581:
1578:
1575:
1572:
1569:
1566:
1563:
1560:
1557:
1554:
1551:
1548:
1545:
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:
1413:
1410:
1407:
1404:
1401:
1398:
1395:
1392:
1389:
1386:
1383:
1380:
1377:
1374:
1371:
1368:
1365:
1362:
1359:
1356:
1353:
1350:
1347:
1344:
1341:
1338:
1335:
1332:
1329:
1326:
1323:
1320:
1317:
1314:
1311:
1308:
1305:
1302:
1299:
1296:
1293:
1290:
1287:
1284:
1281:
1278:
1275:
1272:
1269:
1262:
1255:
1252:
1249:
1246:
1243:
1240:
1237:
1234:
1231:
1228:
1225:
1222:
1219:
1216:
1213:
1210:
1207:
1204:
1201:
1198:
1195:
1192:
1189:
1186:
1183:
1180:
1177:
1174:
1171:
1168:
1165:
1162:
1159:
1156:
1153:
1150:
1147:
1144:
1141:
1138:
1135:
1132:
1129:
1126:
1123:
1120:
1117:
1114:
1111:
1108:
1105:
1102:
1099:
1096:
1093:
1090:
1087:
1084:
1081:
1078:
1075:
1068:
1016:
1013:
1010:
1007:
1004:
1001:
998:
995:
992:
989:
986:
983:
980:
977:
974:
971:
968:
965:
962:
959:
956:
953:
950:
947:
944:
941:
938:
935:
932:
929:
926:
923:
920:
917:
914:
911:
908:
905:
902:
899:
896:
893:
890:
887:
884:
881:
878:
875:
872:
869:
866:
863:
860:
857:
854:
851:
848:
845:
842:
839:
836:
833:
830:
827:
824:
821:
818:
815:
812:
809:
806:
803:
800:
797:
794:
791:
788:
785:
782:
779:
776:
773:
770:
767:
764:
761:
758:
755:
752:
749:
746:
743:
740:
737:
734:
731:
728:
725:
722:
719:
716:
713:
710:
707:
661:
657:
620:abstract machine
601:eager evaluation
564:
557:
554:
551:
548:
545:
542:
539:
536:
533:
530:
527:
524:
521:
518:
515:
512:
509:
498:
491:
488:
485:
482:
479:
476:
473:
470:
467:
464:
461:
458:
455:
452:
449:
446:
443:
440:
437:
434:
431:
428:
425:
422:
419:
416:
413:
410:
407:
404:
186:
185:
150:
146:
138:
134:
130:
118:evaluation order
110:binding strategy
86:
79:
72:
30:
29:
21:
5176:
5175:
5171:
5170:
5169:
5167:
5166:
5165:
5151:
5150:
5137:
5117:
5106:
5105:
5096:
5095:
5091:
5080:
5067:
5025:
5004:Research Report
4999:
4991:
4989:Further reading
4986:
4985:
4976:(August 2003).
4970:
4966:
4956:
4954:
4944:
4921:
4915:
4908:
4898:
4896:
4892:
4886:
4882:
4875:
4859:
4855:
4845:
4843:
4835:
4834:
4830:
4823:
4807:
4803:
4796:
4780:
4776:
4769:
4753:
4749:
4740:
4739:
4735:
4722:
4721:
4717:
4707:
4705:
4690:
4686:
4677:
4675:
4660:
4656:
4646:
4644:
4633:
4629:
4622:
4611:
4603:
4599:
4591:
4585:
4584:
4580:
4568:
4564:
4563:
4559:
4549:
4547:
4539:Coenen, Frans.
4537:
4533:
4524:
4522:
4517:
4516:
4505:
4495:
4493:
4485:
4484:
4480:
4465:
4446:10.1.1.451.6513
4433:
4429:
4419:
4417:
4409:Marlow, Simon.
4407:
4403:
4396:
4380:
4373:
4366:
4350:
4346:
4336:
4334:
4326:
4320:
4316:
4303:
4299:
4283:10.1.1.137.9885
4266:
4253:
4240:
4239:
4235:
4203:
4197:
4193:
4183:
4181:
4170:
4166:
4159:
4143:
4139:
4132:
4116:
4112:
4102:
4100:
4093:
4065:Abelson, Harold
4062:
4055:
4045:
4043:
4033:
4029:
4019:
4017:
4009:
4008:
4001:
3992:
3990:
3978:
3974:
3965:
3963:
3951:
3947:
3938:
3936:
3928:
3927:
3923:
3914:
3912:
3908:
3897:
3891:
3878:
3867:
3863:
3853:
3851:
3841:
3837:
3827:
3811:. p. 117.
3805:
3801:
3782:
3778:
3740:
3736:
3726:
3724:
3713:
3709:
3700:
3698:
3690:
3689:
3685:
3678:
3664:
3657:
3650:
3632:
3628:
3621:
3598:
3594:
3587:
3561:
3557:
3550:
3534:
3525:
3510:
3478:
3474:
3467:
3451:
3447:
3437:
3435:
3433:
3409:
3405:
3396:
3385:
3379:
3376:
3366:Please help to
3365:
3349:
3345:
3338:
3320:Lambda calculus
3301:
3289:
3265:
3264:
3261:
3258:
3255:
3252:
3249:
3246:
3243:
3240:
3237:
3234:
3231:
3228:
3225:
3222:
3219:
3216:
3213:
3210:
3207:
3166:
3154:Hygienic macros
3146:
3138:Graph reduction
3131:
3120:Lazy evaluation
3085:
3083:Lazy evaluation
3079:
3070:
3046:
3029:Jensen's device
3021:
3016:
2996:
2987:
2986:
2983:
2980:
2977:
2974:
2971:
2968:
2965:
2962:
2959:
2956:
2953:
2950:
2947:
2944:
2941:
2938:
2935:
2932:
2929:
2926:
2923:
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:
2780:
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:
2680:
2677:
2674:
2671:
2668:
2665:
2662:
2659:
2656:
2653:
2650:
2647:
2644:
2641:
2638:
2635:
2632:
2629:
2626:
2623:
2620:
2617:
2614:
2611:
2608:
2605:
2602:
2599:
2596:
2593:
2590:
2587:
2584:
2581:
2578:
2575:
2572:
2569:
2566:
2563:
2560:
2557:
2554:
2551:
2548:
2545:
2542:
2539:
2536:
2533:
2530:
2527:
2524:
2521:
2518:
2515:
2512:
2509:
2506:
2503:
2500:
2497:
2494:
2491:
2488:
2485:
2482:
2479:
2476:
2473:
2470:
2467:
2464:
2461:
2458:
2455:
2452:
2449:
2446:
2443:
2440:
2437:
2434:
2431:
2428:
2425:
2422:
2419:
2416:
2413:
2410:
2407:
2404:
2401:
2398:
2395:
2392:
2389:
2386:
2383:
2380:
2377:
2374:
2371:
2369:<stdio.h>
2368:
2365:
2333:
2330:
2329:
2326:
2323:
2320:
2317:
2314:
2311:
2308:
2305:
2302:
2299:
2296:
2293:
2290:
2287:
2284:
2281:
2278:
2275:
2272:
2269:
2266:
2263:
2260:
2257:
2254:
2251:
2248:
2245:
2242:
2239:
2236:
2233:
2230:
2227:
2224:
2221:
2218:
2215:
2212:
2209:
2206:
2203:
2200:
2197:
2194:
2191:
2188:
2185:
2182:
2179:
2176:
2173:
2170:
2167:
2164:
2161:
2158:
2155:
2152:
2149:
2146:
2143:
2140:
2137:
2134:
2132:<stdio.h>
2131:
2128:
2117:Call by address
2114:
2112:Call by address
2109:
2108:
2105:
2102:
2099:
2096:
2093:
2090:
2087:
2084:
2081:
2078:
2075:
2072:
2069:
2066:
2063:
2060:
2057:
2054:
2051:
2048:
2045:
2042:
2039:
2036:
2033:
2018:
2015:
2012:
2011:
2008:
2005:
2002:
1999:
1996:
1993:
1990:
1987:
1984:
1981:
1978:
1975:
1972:
1969:
1966:
1963:
1960:
1957:
1954:
1951:
1948:
1876:
1874:Call by sharing
1864:multiprocessing
1846:
1845:
1842:
1839:
1836:
1833:
1830:
1827:
1824:
1821:
1818:
1815:
1812:
1809:
1806:
1803:
1800:
1797:
1794:
1791:
1788:
1785:
1782:
1779:
1776:
1773:
1770:
1767:
1764:
1761:
1758:
1755:
1752:
1749:
1746:
1743:
1740:
1737:
1734:
1731:
1728:
1725:
1722:
1719:
1716:
1713:
1710:
1707:
1704:
1701:
1698:
1695:
1692:
1689:
1686:
1683:
1680:
1677:
1674:
1671:
1668:
1665:
1662:
1659:
1656:
1653:
1650:
1647:
1616:
1607:
1604:
1603:
1600:
1597:
1594:
1591:
1588:
1585:
1582:
1579:
1576:
1573:
1570:
1567:
1564:
1561:
1558:
1555:
1552:
1549:
1546:
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:
1411:
1408:
1405:
1402:
1399:
1396:
1393:
1390:
1387:
1384:
1381:
1378:
1375:
1372:
1369:
1366:
1363:
1360:
1357:
1354:
1351:
1348:
1345:
1342:
1339:
1336:
1333:
1330:
1327:
1324:
1321:
1318:
1315:
1312:
1309:
1306:
1303:
1300:
1297:
1294:
1291:
1288:
1285:
1282:
1279:
1276:
1273:
1270:
1267:
1260:
1257:
1256:
1253:
1250:
1247:
1245:end subroutine
1244:
1241:
1238:
1235:
1232:
1229:
1226:
1223:
1220:
1217:
1214:
1211:
1208:
1205:
1202:
1199:
1196:
1193:
1190:
1187:
1184:
1181:
1178:
1175:
1172:
1169:
1166:
1163:
1160:
1157:
1154:
1151:
1148:
1145:
1142:
1139:
1136:
1133:
1130:
1127:
1124:
1121:
1118:
1115:
1112:
1109:
1106:
1103:
1100:
1097:
1094:
1091:
1088:
1085:
1082:
1079:
1076:
1073:
1066:
1051:
1036:call by sharing
1023:
1018:
1017:
1014:
1011:
1008:
1005:
1002:
999:
996:
993:
990:
987:
984:
981:
978:
975:
972:
969:
966:
963:
960:
957:
954:
951:
948:
945:
942:
939:
936:
933:
930:
927:
924:
921:
918:
915:
912:
909:
906:
903:
900:
897:
894:
891:
888:
885:
882:
879:
876:
873:
870:
867:
864:
861:
858:
855:
852:
849:
846:
843:
840:
837:
834:
831:
828:
825:
822:
819:
816:
813:
810:
807:
804:
801:
798:
795:
792:
789:
786:
783:
780:
777:
774:
771:
768:
765:
762:
759:
756:
753:
750:
747:
744:
741:
738:
735:
732:
729:
726:
723:
720:
717:
714:
711:
708:
705:
690:
685:
668:
659:
655:
644:Lazy evaluation
628:
586:
562:
559:
558:
555:
552:
549:
546:
543:
540:
537:
534:
531:
528:
525:
522:
519:
516:
513:
510:
507:
496:
493:
492:
489:
486:
483:
480:
477:
474:
471:
468:
465:
462:
459:
456:
453:
450:
447:
444:
441:
438:
435:
432:
429:
426:
423:
420:
417:
414:
411:
408:
405:
402:
388:
310:Call by sharing
180:
148:
144:
136:
132:
128:
90:
43:Lazy evaluation
28:
23:
22:
15:
12:
11:
5:
5174:
5164:
5163:
5149:
5148:
5136:
5135:External links
5133:
5132:
5131:
5129:on 2013-01-21.
5115:
5089:
5071:
5065:
5043:
5030:
5012:
4990:
4987:
4984:
4983:
4964:
4942:
4906:
4880:
4873:
4853:
4828:
4821:
4801:
4794:
4774:
4767:
4747:
4733:
4715:
4684:
4654:
4641:tools.ietf.org
4627:
4620:
4597:
4578:
4557:
4531:
4503:
4478:
4463:
4427:
4401:
4394:
4371:
4364:
4344:
4314:
4297:
4251:
4233:
4191:
4164:
4157:
4137:
4130:
4110:
4091:
4053:
4027:
3999:
3987:Microsoft Docs
3972:
3960:Microsoft Docs
3945:
3921:
3876:
3861:
3835:
3825:
3799:
3776:
3734:
3707:
3683:
3676:
3655:
3649:978-0262062794
3648:
3626:
3619:
3613:. p. 56.
3592:
3585:
3565:"Introduction"
3555:
3548:
3523:
3508:
3491:10.1.1.23.4385
3472:
3465:
3445:
3431:
3402:
3401:
3398:
3397:
3352:
3350:
3343:
3337:
3334:
3333:
3332:
3327:
3322:
3317:
3312:
3307:
3300:
3297:
3288:
3285:
3271:finish before
3206:
3165:
3164:Call by future
3162:
3145:
3142:
3128:.NET languages
3081:Main article:
3078:
3075:
3043:.NET languages
3020:
3017:
3015:
3012:
2995:
2992:
2796:
2364:
2127:
2113:
2110:
2032:
1947:
1892:Barbara Liskov
1875:
1872:
1646:
1615:
1612:
1601:// output: 2 1
1266:
1072:
1050:
1047:
1022:
1021:Semantic drift
1019:
704:
689:
686:
684:
681:
667:
664:
627:
624:
585:
582:
506:
401:
387:
384:
381:
380:
377:
368:
361:
360:
357:
340:
336:
335:
332:
311:
307:
306:
303:
290:
286:
285:
282:
277:
273:
272:
269:
260:
256:
255:
252:
243:
239:
238:
235:
218:
214:
213:
210:
201:
197:
196:
193:
190:
179:
176:
92:
91:
89:
88:
81:
74:
66:
63:
62:
61:
60:
55:
50:
45:
37:
36:
26:
9:
6:
4:
3:
2:
5173:
5162:
5159:
5158:
5156:
5146:
5143:
5139:
5138:
5128:
5124:
5120:
5116:
5112:
5100:
5092:
5090:3-540-00326-6
5086:
5079:
5078:
5072:
5068:
5066:0-262-16209-1
5062:
5058:
5054:
5053:
5048:
5044:
5040:
5036:
5031:
5024:
5023:
5018:
5013:
5009:
5005:
4998:
4993:
4992:
4979:
4975:
4968:
4953:
4949:
4945:
4939:
4935:
4931:
4927:
4920:
4913:
4911:
4891:
4884:
4876:
4870:
4866:
4865:
4857:
4842:
4838:
4832:
4824:
4818:
4814:
4813:
4805:
4797:
4791:
4787:
4786:
4778:
4770:
4764:
4760:
4759:
4751:
4743:
4737:
4729:
4725:
4719:
4703:
4699:
4695:
4688:
4674:on 2011-05-19
4673:
4669:
4665:
4658:
4642:
4638:
4631:
4623:
4617:
4610:
4609:
4601:
4590:
4589:
4582:
4575:. p. 53.
4574:
4567:
4561:
4546:
4542:
4535:
4521:. 16 May 2001
4520:
4514:
4512:
4510:
4508:
4492:
4488:
4482:
4474:
4470:
4466:
4460:
4456:
4452:
4447:
4442:
4438:
4431:
4416:
4412:
4405:
4397:
4391:
4387:
4386:
4378:
4376:
4367:
4361:
4357:
4356:
4348:
4332:
4325:
4318:
4310:
4309:
4301:
4293:
4289:
4284:
4279:
4275:
4271:
4264:
4262:
4260:
4258:
4256:
4247:
4243:
4237:
4229:
4225:
4221:
4217:
4213:
4209:
4202:
4195:
4179:
4175:
4168:
4160:
4154:
4150:
4149:
4141:
4133:
4127:
4123:
4122:
4114:
4099:on 2005-03-02
4098:
4094:
4092:0-262-01153-0
4088:
4084:
4080:
4079:
4074:
4070:
4066:
4060:
4058:
4042:
4038:
4031:
4016:
4012:
4006:
4004:
3989:
3988:
3983:
3976:
3962:
3961:
3956:
3949:
3935:
3931:
3925:
3907:
3903:
3896:
3889:
3887:
3885:
3883:
3881:
3872:
3865:
3850:
3846:
3839:
3832:
3828:
3822:
3818:
3814:
3810:
3803:
3795:
3791:
3787:
3780:
3771:
3767:
3762:
3757:
3753:
3749:
3745:
3738:
3722:
3718:
3711:
3697:
3693:
3687:
3679:
3677:9780124104778
3673:
3669:
3662:
3660:
3651:
3645:
3641:
3640:The MIT Press
3637:
3630:
3622:
3620:0-262-16209-1
3616:
3612:
3608:
3607:
3602:
3596:
3588:
3582:
3578:
3574:
3571:. p. 3.
3570:
3566:
3559:
3551:
3545:
3541:
3540:
3532:
3530:
3528:
3519:
3515:
3511:
3505:
3501:
3497:
3492:
3487:
3484:. p. 2.
3483:
3476:
3468:
3462:
3458:
3457:
3449:
3434:
3428:
3424:
3420:
3417:. p. 1.
3416:
3415:
3407:
3403:
3394:
3391:
3383:
3373:
3369:
3363:
3362:
3356:
3351:
3342:
3341:
3331:
3328:
3326:
3323:
3321:
3318:
3316:
3313:
3311:
3308:
3306:
3303:
3302:
3296:
3294:
3284:
3280:
3204:
3200:
3198:
3195:
3191:
3185:
3182:
3178:
3173:
3171:
3161:
3159:
3155:
3151:
3141:
3139:
3135:
3132:Lazy<T>
3129:
3125:
3121:
3117:
3115:
3110:
3108:
3104:
3100:
3096:
3094:
3090:
3084:
3074:
3068:
3064:
3060:
3056:
3052:
3044:
3040:
3038:
3032:
3030:
3026:
3011:
3009:
3005:
3001:
2991:
2794:
2787:
2362:
2360:
2125:
2122:
2118:
2030:
2022:
1945:
1942:
1940:
1936:
1931:
1929:
1925:
1921:
1917:
1913:
1909:
1905:
1901:
1897:
1893:
1888:
1886:
1882:
1871:
1869:
1865:
1860:
1849:
1644:
1642:
1629:
1624:
1621:
1611:
1264:
1080:implicit none
1070:
1062:
1060:
1056:
1046:
1044:
1039:
1037:
1033:
1028:
702:
700:
696:
688:Call by value
680:
678:
674:
663:
653:
648:
645:
641:
637:
633:
623:
621:
617:
613:
610:Common Lisp,
608:
606:
602:
598:
594:
590:
581:
579:
575:
571:
566:
504:
502:
399:
397:
393:
378:
376:
372:
369:
367:
363:
362:
358:
356:
352:
348:
344:
341:
338:
337:
333:
331:
327:
323:
319:
315:
312:
309:
308:
304:
302:
298:
294:
291:
288:
287:
283:
281:
278:
275:
274:
270:
268:
264:
261:
258:
257:
253:
251:
247:
244:
241:
240:
236:
234:
230:
226:
222:
219:
217:Call by value
216:
215:
211:
209:
205:
202:
199:
198:
194:
191:
188:
187:
184:
175:
173:
169:
165:
161:
156:
154:
142:
125:
123:
119:
115:
111:
107:
103:
99:
87:
82:
80:
75:
73:
68:
67:
65:
64:
59:
56:
54:
51:
49:
46:
44:
41:
40:
39:
38:
35:
32:
31:
19:
18:Call by value
5127:the original
5122:
5076:
5050:
5038:
5021:
5007:
5003:
4967:
4955:. Retrieved
4925:
4897:. Retrieved
4883:
4863:
4856:
4844:. Retrieved
4840:
4831:
4811:
4804:
4784:
4777:
4757:
4750:
4736:
4727:
4718:
4706:. Retrieved
4702:the original
4697:
4687:
4676:. Retrieved
4672:the original
4667:
4657:
4645:. Retrieved
4640:
4630:
4607:
4600:
4587:
4581:
4572:
4560:
4548:. Retrieved
4544:
4534:
4523:. Retrieved
4494:. Retrieved
4490:
4481:
4436:
4430:
4418:. Retrieved
4414:
4404:
4384:
4354:
4347:
4335:. Retrieved
4330:
4317:
4307:
4300:
4276:(1): 43–66.
4273:
4269:
4245:
4236:
4214:(4): 15–20.
4211:
4207:
4194:
4182:. Retrieved
4177:
4167:
4147:
4140:
4120:
4113:
4101:. Retrieved
4097:the original
4077:
4044:. Retrieved
4040:
4030:
4018:. Retrieved
4014:
3991:. Retrieved
3985:
3975:
3964:. Retrieved
3958:
3948:
3937:. Retrieved
3933:
3924:
3913:. Retrieved
3901:
3870:
3864:
3852:. Retrieved
3848:
3838:
3830:
3808:
3802:
3793:
3789:
3779:
3754:(1): 23–41.
3751:
3747:
3737:
3725:. Retrieved
3720:
3710:
3699:. Retrieved
3695:
3686:
3667:
3635:
3629:
3605:
3595:
3568:
3558:
3538:
3481:
3475:
3455:
3448:
3436:. Retrieved
3413:
3406:
3386:
3377:
3358:
3290:
3281:
3266:
3201:
3186:
3181:concurrently
3174:
3167:
3147:
3136:
3118:
3111:
3097:
3086:
3077:Call by need
3041:
3033:
3022:
3019:Call by name
2997:
2988:
2788:
2781:
2522:temp_storage
2501:temp_storage
2331:
2116:
2115:
2023:
2017:because the
2013:
1943:
1932:
1889:
1884:
1877:
1861:
1850:
1847:
1625:
1617:
1605:
1258:
1251:end program
1063:
1052:
1040:
1024:
691:
669:
649:
635:
631:
629:
609:
604:
600:
596:
588:
587:
570:side effects
567:
560:
494:
394:defines the
389:
289:Call by need
242:Call by name
181:
157:
126:
117:
109:
105:
101:
95:
33:
5107:|work=
4041:C++ Stories
3934:www.php.net
3372:introducing
3197:async/await
3073:interface.
3004:unification
1916:AppleScript
1910:(objects),
1906:(objects),
1881:boxed types
1660:Ada.Text_IO
1651:Ada.Text_IO
1158:subroutine
5145:visualiser
4943:0897917197
4899:11 January
4846:20 January
4812:C in Depth
4728:www.tcl.tk
4708:20 January
4678:2011-05-19
4668:Effbot.org
4550:22 January
4525:2016-12-24
4496:20 January
4464:1581131119
4103:2006-03-06
3993:2023-09-10
3966:2023-09-10
3939:2021-07-04
3915:2011-05-19
3849:R-bloggers
3701:2023-01-28
3509:0897914198
3380:April 2012
3355:references
3336:References
3170:concurrent
3008:resolution
1912:JavaScript
1067:swap(a, b)
994:PrintArray
961:PrintArray
904:PrintArray
874:PrintArray
727:PrintArray
677:call stack
487:''
436:''
390:While the
263:Fortran IV
166:, such as
160:PureScript
153:assignment
141:references
114:parameters
5109:ignored (
5099:cite book
5057:MIT Press
4957:7 January
4841:okmij.org
4441:CiteSeerX
4420:25 August
4337:23 August
4278:CiteSeerX
4184:23 August
4083:MIT Press
4046:24 August
3854:21 August
3727:22 August
3611:MIT Press
3486:CiteSeerX
3438:21 August
3190:coroutine
2669:b_storage
2648:b_storage
2639:a_storage
2618:a_storage
1675:procedure
1666:procedure
1059:assign to
1055:reference
1032:reference
841:Procedure
724:procedure
535:print_int
520:print_int
5155:Category
5049:(2002).
5019:(2003).
4473:13954359
4071:(1996).
3906:Archived
3796:: 63–72.
3770:14389185
3603:(2002).
3299:See also
3192:, as in
3103:mutation
3089:memoized
3069:and the
2957:<<
2951:<<
2945:<<
2366:#include
2129:#include
2014:outputs
1843:-- X = 2
1798:Put_Line
1155:contains
1074:program
561:outputs
495:outputs
246:ALGOL 60
4952:2045943
4647:7 April
4228:2987427
4020:11 June
3518:5782416
3368:improve
3293:runtime
3126:exist.
3099:Haskell
2121:pointer
1810:Integer
1765:Integer
1702:Integer
1620:Fortran
1547:println
1209:integer
1179:integer
1098:integer
1083:integer
943:integer
862:integer
826:WriteLn
763:Integer
745:integer
706:program
297:Haskell
204:Fortran
168:Datalog
5087:
5063:
4950:
4940:
4871:
4819:
4792:
4765:
4643:. IETF
4618:
4471:
4461:
4443:
4392:
4362:
4280:
4226:
4155:
4128:
4089:
3823:
3768:
3674:
3646:
3617:
3583:
3546:
3516:
3506:
3488:
3463:
3429:
3357:, but
3107:monads
3055:Eiffel
2975:return
2972:// 2 1
2768:return
2765:// 2 1
2729:printf
2693:assign
2675:assign
2576:assign
2552:assign
2528:assign
2414:assign
2396:return
2351:assign
2318:return
2315:// 2 1
2291:printf
2067:a_list
2055:a_list
2049:a_list
2043:a_list
2027:a_list
2019:append
1970:append
1964:a_list
1958:a_list
1900:Python
1885:shared
1857:in out
1780:Modify
1753:Modify
1678:Modify
1633:in out
1559:format
1553:String
1535:System
1457:String
1445:static
1442:public
1343:static
1298:public
1277:static
1185:intent
1009:// 123
979:Modify
976:// 123
919:// 143
889:// 123
844:Modify
699:Pascal
673:thunks
612:Eiffel
593:strict
442:return
322:Python
280:Prolog
250:Simula
233:MATLAB
229:Scheme
129:f(a,b)
5081:(PDF)
5026:(PDF)
4948:S2CID
4922:(PDF)
4893:(PDF)
4612:(PDF)
4592:(PDF)
4569:(PDF)
4469:S2CID
4327:(PDF)
4246:OCaml
4224:S2CID
4204:(PDF)
3909:(PDF)
3898:(PDF)
3766:S2CID
3514:S2CID
3244:print
3059:Seed7
3037:thunk
2822:&
2810:&
2666:&
2636:&
2519:&
2359:above
2334:&
2282:&
2273:&
2094:print
2061:print
2000:print
1924:Maple
1816:Image
1813:'
1807:&
1777:begin
1711:begin
1628:alias
1589:value
1577:value
1427:value
1415:value
1403:value
1391:value
1331:value
1325:value
1310:value
1292:value
1280:class
1268:class
1261:inout
1191:inout
1152:! 2 1
1134:print
1113:call
949:begin
937:Array
871:begin
856:Array
811:Write
769:begin
739:Array
695:scope
660:false
616:OCaml
578:C++17
501:OCaml
448:print
418:print
379:1985
366:const
359:1985
334:1974
330:Julia
305:1971
284:1965
271:1962
254:1960
237:1960
221:ALGOL
212:1958
178:Table
149:ref_b
145:ref_a
100:, an
96:In a
5111:help
5085:ISBN
5061:ISBN
5000:(ps)
4959:2022
4938:ISBN
4901:2022
4869:ISBN
4848:2024
4817:ISBN
4790:ISBN
4763:ISBN
4710:2024
4649:2018
4616:ISBN
4552:2024
4498:2024
4459:ISBN
4422:2021
4390:ISBN
4360:ISBN
4339:2021
4186:2021
4153:ISBN
4126:ISBN
4087:ISBN
4048:2021
4022:2022
3856:2021
3821:ISBN
3729:2021
3672:ISBN
3644:ISBN
3615:ISBN
3581:ISBN
3544:ISBN
3504:ISBN
3461:ISBN
3440:2021
3427:ISBN
3315:eval
3238:main
3194:.NET
3093:pure
3063:Java
2966:endl
2942:cout
2918:swap
2879:main
2867:temp
2837:temp
2801:swap
2798:void
2791:swap
2784:swap
2753:read
2741:read
2711:swap
2606:main
2594:temp
2588:read
2564:read
2540:read
2534:temp
2513:temp
2465:swap
2462:void
2411:void
2375:read
2349:and
2347:read
2342:swap
2338:swap
2267:swap
2228:main
2216:temp
2174:temp
2138:swap
2135:void
1933:For
1908:Ruby
1904:Java
1866:and
1648:with
1641:GNAT
1517:swap
1460:args
1451:main
1448:void
1433:temp
1379:temp
1349:swap
1346:void
1319:this
1271:Main
1254:Main
1248:Swap
1242:temp
1218:temp
1215:temp
1161:Swap
1116:Swap
1077:Main
796:High
715:uses
709:Main
656:true
326:Ruby
318:Java
293:SASL
208:PL/I
206:II,
147:and
135:and
4930:doi
4451:doi
4288:doi
4216:doi
4212:VII
3813:doi
3756:doi
3573:doi
3496:doi
3419:doi
3277:1/0
3112:In
2998:In
2960:std
2936:std
2903:int
2888:int
2876:int
2834:int
2819:int
2807:int
2762:));
2654:int
2645:int
2624:int
2615:int
2603:int
2597:));
2573:));
2549:));
2507:int
2498:int
2483:int
2471:int
2432:int
2420:int
2381:int
2372:int
2361:):
2355:Box
2252:int
2237:int
2225:int
2171:int
2156:int
2144:int
2034:def
1949:def
1928:Tcl
1896:CLU
1853:out
1828:end
1825:));
1750:end
1699:out
1657:use
1637:out
1635:or
1608:Box
1592:));
1541:out
1505:Box
1502:new
1493:Box
1481:Box
1478:new
1469:Box
1376:int
1364:Box
1355:Box
1307:int
1301:Box
1289:int
1283:Box
1041:In
1012:end
928:Var
922:end
910:Row
892:Row
880:Row
850:Row
835:end
781:Low
772:for
754:var
718:crt
642:).
603:or
563:213
508:let
497:123
481:end
430:end
403:def
371:C++
347:PHP
343:C++
314:CLU
267:Ada
5157::
5121:.
5103::
5101:}}
5097:{{
5059:.
5055:.
5037:.
5008:99
5006:.
5002:.
4946:.
4936:.
4924:.
4909:^
4839:.
4726:.
4696:.
4666:.
4639:.
4571:.
4543:.
4506:^
4489:.
4467:.
4457:.
4449:.
4413:.
4374:^
4329:.
4286:.
4274:26
4272:.
4254:^
4244:.
4222:.
4210:.
4206:.
4176:.
4085:.
4075:.
4067:;
4056:^
4039:.
4013:.
4002:^
3984:.
3957:.
3932:.
3900:.
3879:^
3847:.
3829:.
3819:.
3792:.
3788:.
3764:.
3752:12
3750:.
3746:.
3719:.
3694:.
3658:^
3642:.
3609:.
3579:.
3567:.
3526:^
3512:.
3502:.
3494:.
3425:.
3279:.
3262:))
3134:.
3039:.
2963:::
2939:::
2933:);
2882:()
2750:),
2726:);
2708:);
2690:);
2609:()
2312:);
2288:);
2231:()
2106:#
2073:#
2046:):
2029::
1961:):
1920:ML
1795:);
1768::=
1735::=
1717::=
1708:is
1696:in
1693::
1672:is
1532:);
1514:);
1490:);
1212:::
1197:::
1101:::
1086:::
1038:.
955::=
940:of
895::=
859:of
829:()
808:do
793:to
778::=
742:of
630:A
532:;;
503::
478:),
415:):
373:,
353:,
351:C#
349:,
345:,
328:,
324:,
320:,
316:,
299:,
295:,
265:,
248:,
231:,
227:,
223:,
174:.
5113:)
5093:.
5069:.
5041:.
4980:.
4961:.
4932::
4903:.
4877:.
4850:.
4825:.
4798:.
4771:.
4730:.
4712:.
4681:.
4651:.
4624:.
4554:.
4528:.
4500:.
4475:.
4453::
4424:.
4398:.
4368:.
4341:.
4294:.
4290::
4230:.
4218::
4188:.
4161:.
4134:.
4106:.
4050:.
4024:.
3996:.
3969:.
3942:.
3918:.
3858:.
3815::
3794:6
3772:.
3758::
3731:.
3704:.
3680:.
3652:.
3623:.
3589:.
3575::
3552:.
3520:.
3498::
3469:.
3442:.
3421::
3393:)
3387:(
3382:)
3378:(
3364:.
3273:f
3269:g
3259:0
3256:f
3253:(
3250:g
3247:(
3241:=
3235:1
3232:=
3229:y
3226:g
3223:x
3220:/
3217:1
3214:=
3211:x
3208:f
3114:R
2984:}
2981:;
2978:0
2969:;
2954:b
2948:a
2930:b
2927:,
2924:a
2921:(
2915:;
2912:2
2909:=
2906:b
2900:;
2897:1
2894:=
2891:a
2885:{
2873:}
2870:;
2864:=
2861:b
2858:;
2855:b
2852:=
2849:a
2846:;
2843:a
2840:=
2831:{
2828:)
2825:b
2816:,
2813:a
2804:(
2777:}
2774:;
2771:0
2759:b
2756:(
2747:a
2744:(
2738:,
2732:(
2723:b
2720:,
2717:a
2714:(
2705:2
2702:,
2699:b
2696:(
2687:1
2684:,
2681:a
2678:(
2672:;
2663:=
2660:b
2657:*
2651:;
2642:;
2633:=
2630:a
2627:*
2621:;
2612:{
2600:}
2591:(
2585:,
2582:b
2579:(
2570:b
2567:(
2561:,
2558:a
2555:(
2546:a
2543:(
2537:,
2531:(
2525:;
2516:=
2510:*
2504:;
2495:{
2492:)
2489:b
2486:*
2480:,
2477:a
2474:*
2468:(
2459:}
2456:;
2453:v
2450:=
2447:p
2444:*
2441:{
2438:)
2435:v
2429:,
2426:p
2423:*
2417:(
2408:}
2405:;
2402:p
2399:*
2393:{
2390:)
2387:p
2384:*
2378:(
2327:}
2324:;
2321:0
2309:b
2306:,
2303:a
2300:,
2294:(
2285:b
2279:,
2276:a
2270:(
2264:;
2261:2
2258:=
2255:b
2249:;
2246:1
2243:=
2240:a
2234:{
2222:}
2219:;
2213:=
2210:b
2207:*
2204:;
2201:b
2198:*
2195:=
2192:a
2189:*
2186:;
2183:a
2180:*
2177:=
2168:{
2165:)
2162:b
2159:*
2153:,
2150:a
2147:*
2141:(
2103:)
2100:m
2097:(
2091:)
2088:m
2085:(
2082:f
2079:=
2076:m
2070:)
2064:(
2058:+
2052:=
2040:(
2037:f
2009:)
2006:m
2003:(
1997:)
1994:m
1991:(
1988:f
1985:=
1982:m
1979:)
1976:1
1973:(
1967:.
1955:(
1952:f
1879:"
1834:;
1822:X
1819:(
1801:(
1792:X
1789:,
1786:X
1783:(
1774:;
1771:0
1762::
1759:X
1756:;
1747:;
1744:2
1741:+
1738:B
1732:B
1729:;
1726:1
1723:+
1720:A
1714:A
1705:)
1690:B
1687:,
1684:A
1681:(
1663:;
1654:;
1598:}
1595:}
1586:.
1583:b
1580:,
1574:.
1571:a
1568:,
1562:(
1556:.
1550:(
1544:.
1538:.
1529:b
1526:,
1523:a
1520:(
1511:2
1508:(
1499:=
1496:b
1487:1
1484:(
1475:=
1472:a
1466:{
1463:)
1454:(
1439:}
1436:;
1430:=
1424:.
1421:b
1418:;
1412:.
1409:b
1406:=
1400:.
1397:a
1394:;
1388:.
1385:a
1382:=
1373:{
1370:)
1367:b
1361:,
1358:a
1352:(
1340:}
1337:}
1334:;
1328:=
1322:.
1316:{
1313:)
1304:(
1295:;
1286:{
1274:{
1239:=
1236:b
1233:b
1230:=
1227:a
1224:a
1221:=
1206:b
1203:,
1200:a
1194:)
1188:(
1182:,
1176:)
1173:b
1170:,
1167:a
1164:(
1149:b
1146:,
1143:a
1140:,
1137:*
1131:)
1128:b
1125:,
1122:a
1119:(
1110:2
1107:=
1104:b
1095:1
1092:=
1089:a
1015:.
1006:;
1003:)
1000:A
997:(
991:;
988:)
985:A
982:(
973:;
970:)
967:A
964:(
958:;
952:A
946:;
934::
931:A
925:;
916:;
913:)
907:(
901:;
898:4
886:;
883:)
877:(
868:;
865:)
853::
847:(
838:;
832:;
823:;
820:)
817:a
814:(
805:)
802:a
799:(
790:)
787:a
784:(
775:i
766:;
760::
757:i
751:;
748:)
736::
733:a
730:(
721:;
712:;
556:)
553:2
550:f
547:+
544:1
541:f
538:(
529:x
526:;
523:x
517:=
514:x
511:f
490:)
484:=
475:2
472:(
469:f
466:+
463:)
460:1
457:(
454:f
451:(
445:x
439:)
433:=
427:,
424:x
421:(
412:x
409:(
406:f
375:C
301:R
225:C
137:b
133:a
85:e
78:t
71:v
20:)
Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.