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