Knowledge (XXG)

Currying

Source đź“ť

7149: 7197: 7187: 7177: 6060:. Thus, any partial application may be reduced to a single curry operation. As such, curry is more suitably defined as an operation which, in many theoretical cases, is often applied recursively, but which is theoretically indistinguishable (when considered as an operation) from a partial application. 5205:
Currying and partial function application are often conflated. One of the significant differences between the two is that a call to a partially applied function returns the result right away, not another function down the currying chain; this distinction can be illustrated clearly for functions whose
6470:
In the last line we have used a trick called Currying (after the logician H. Curry) to solve the problem of introducing a binary operation into a language where all functions must accept a single argument. (The referee comments that although "Currying" is tastier, "Schönfinkeling" might be more
1105:
showed that it was sufficient to provide solutions for the single argument case, as it was possible to transform a function with multiple arguments into a chain of single-argument functions instead. This transformation is the process now known as currying. All "ordinary" functions that might
4485:
being the most prominent example of such a language. It is important in this context, because it can be built from a single type constructor, the arrow type. Currying then endows the language with a natural product type. The correspondence between objects in categories and types then allows
2945: 694:
This is a somewhat informal example; more precise definitions of what is meant by "object" and "function" are given below. These definitions vary from context to context, and take different forms, depending on the theory that one is working in.
2589: 5828: 5635:
The practical motivation for partial application is that very often the functions obtained by supplying some but not all of the arguments to a function are useful; for example, many languages have a function or operator similar to
4947: 6511: 5933:
Thus, partial application is reduced to a curried function at a fixed point. Further, a curried function at a fixed point is (trivially), a partial application. For further evidence, note that, given any function
4061: 4260: 900:, it provides a way to study functions with multiple arguments in simpler theoretical models which provide only one argument. The most general setting for the strict notion of currying and uncurrying is in the 5899: 4574: 3915: 5328: 2757: 5541: 2862: 1195:
Currying is most easily understood by starting with an informal definition, which can then be molded to fit many different domains. First, there is some notation to be established. The notation
1183:, but that source introduces the concept as "a device originated by Schönfinkel", and the term "currying" is not used, while Curry is mentioned later in the context of higher-order functions. 5691: 5261: 3097: 2190: 881: 4277:; however, uncurried functions are generally preferred for efficiency reasons, since the overhead of partial application and closure creation can then be avoided for most function calls. 2857: 5423: 692: 5050:, and thus lacks a product (that is, lacks a way of writing down pairs of objects). Categories that do have both products and internal homs are exactly the closed monoidal categories. 4775: 1519: 5583: 1862: 5459: 1573: 1831: 1164:
had the idea six years before Curry. The alternative name "Schönfinkelisation" has been proposed. In the mathematical context, the principle can be traced back to work in 1893 by
5928: 4814: 2253: 99: 2392: 437: 3976: 3758: 1093:
Currying provides a way for working with functions that take multiple arguments, and using them in frameworks where functions might take only one argument. For example, some
5010: 4980: 4323: 3626: 3522: 3312: 2489: 2286: 1705: 1315: 724: 605: 306: 6058: 5640:. Partial application makes it easy to define these functions, for example by creating a function that represents the addition operator with 1 bound as its first argument. 4106: 1982: 207: 4685: 6592:
Some contemporary logicians call this way of looking at a function "currying", because I made extensive use of it; but Schönfinkel had the idea some 6 years before I did.
4138: 2068: 3247: 4421: 2008: 1341: 5369: 3938: 3500: 3397: 3366: 3335: 4445: 1003: 493: 6002: 5967: 5717: 4652: 4181: 3720: 1643: 1219: 794: 581: 376: 280: 5037: 4619: 3164: 2974: 2831: 2619: 2500: 2467: 2323: 1901: 540: 464: 4387: 6313: 250: 165: 142: 7191: 6735: 6063:
So, a partial application can be defined as the objective result of a single application of the curry operator on some ordering of the inputs of some function.
5486: 4853: 4363: 4343: 3826: 3806: 3782: 3477: 3457: 3437: 3417: 3137: 3117: 3038: 3018: 2994: 2804: 2784: 2683: 2659: 2639: 2440: 2420: 2221: 2128: 2108: 2088: 2028: 1945: 1925: 1788: 1768: 1748: 1728: 1617: 1597: 1469: 1449: 1429: 1409: 1385: 1365: 1283: 1263: 1243: 1180: 1083: 1063: 1043: 1023: 978: 958: 764: 744: 513: 396: 346: 326: 227: 119: 3282: 5722: 6550:
The Kleene Symposium: Proceedings of the Symposium Held June 18-24, 1978 at Madison, Wisconsin, U.S.A. (Studies in Logic and the Foundations of Mathematics)
4865: 6265:(in German). Book from the collections of University of Wisconsin - Madison, digitized by Google on 26 August 2008. Jena: Hermann Pohle. pp. 54–55. 7235: 6411:
There is a device originated by Schönfinkel, for reducing operators with several operands to the successive application of single operand operators.
4688: 7053: 3667:, where, roughly speaking, two computer programs can be considered to be homotopic, i.e. compute the same results, if they can be "continuously" 1148:
can be used to perform partial application and a kind of currying, by hiding arguments in an environment that travels with the curried function.
6195:. Lecture Notes in Physics. Vol. 813: New Structures for Physics. Berlin, Heidelberg: Springer (published 5 July 2010). pp. 95–172. 6962: 6933: 6900: 6218: 7181: 1114:
can be curried. However, there are categories in which currying is not possible; the most general categories which allow currying are the
5468:
refers to the process of fixing a number of arguments to a function, producing another function of smaller arity. Given the definition of
5046:, and thus lacks an internal hom functor (possibly because there is more than one choice for such a functor). Another way is if it is not 3984: 6499:. 13 – via Syracuse University: College of Engineering and Computer Science - Former Departments, Centers, Institutes and Projects. 4189: 7760: 5833: 4505: 3838: 7785: 6774: 6712: 6696: 6569: 6524: 6455: 6293: 1172: 7558: 6284:(1967). "Introduction to Moses Schönfinkel's 1924 "On the building blocks of mathematical logic"". In van Heijenoort, Jean (ed.). 5461:, we are left with a function that takes a single argument and returns another function, not a function that takes two arguments. 5266: 908:
of proofs and programs to a correspondence with many other structures, including quantum mechanics, cobordisms and string theory.
2695: 7091: 5491: 5160: 4499: 4487: 905: 7873: 7868: 7733: 7357: 5113: 3648:
of computer algorithms. Note that the Scott topology is quite different than many common topologies one might encounter in the
6187: 3419:
with the unit interval, modulo an equivalence relation to turn the interval into a loop. The curried form then maps the space
7541: 7451: 6928:. Studies in logic and the foundations of mathematics. Vol. 103 (Rev. ed.). North-Holland, an imprint of Elsevier. 6510:
Slonneger, Kenneth; Kurtz, Barry L. (1995). "Curried Functions, 5.1: Concepts and Examples, Chapter 5: The Lambda Calculus".
4463: 3649: 1145: 702:. The example above can be used to illustrate partial application; it is quite similar. Partial application is the function 7581: 6951:"Chapter I. Categories of Functors; sections 7. Propositional Calculus, 8. Heyting Algebras, and 9. Quantifiers as Adjoints" 6186:
Baez, John C.; Stay, Mike (6 June 2009). "Physics, Topology, Logic and Computation: A Rosetta Stone". In Coecke, Bob (ed.).
5425:, applying each argument in turn to a single-argument function returned by the previous invocation. Note that after calling 7551: 7546: 6169: 7228: 5109: 7127: 5589: 5089: 4712: 4482: 3680: 897: 896:, and many others, it provides a way of automatically managing how arguments are passed to functions and exceptions. In 51: 7826: 7664: 7201: 6609: 5646: 5216: 6727: 6480: 3179: 2940:{\displaystyle {\begin{aligned}&&{\text{eval}}:Y^{X}\times X\to Y\\&&(f,x)\mapsto f(x)\end{aligned}}} 6548:(1980). Barwise, Jon; Keisler, H. Jerome; Kunen, Kenneth (eds.). "Some Philosophical Aspects of Combinatory Logic". 3683:, currying provides a way to study functions with multiple arguments in very simple theoretical models, such as the 3043: 2136: 799: 7441: 6082: 4727: 4274: 167:
The curried form of this function treats the first argument as a parameter, so as to create a family of functions
7649: 7644: 7471: 7046: 5374: 5188: 4731: 4716: 4451: 3640:(as ordinary set theory is inadequate to do this). More generally, Scott-continuous functions are now studied in 2834: 2686: 1126: 610: 7878: 7689: 7654: 7621: 7271: 7221: 7148: 6626: 6112: 5156: 4820: 1115: 901: 7486: 4736: 1480: 607:
is a function that takes objects from the first set, and returns objects in the second set, and so one writes
5546: 1844: 7591: 7563: 7501: 7466: 7402: 7244: 6281: 5585:. Note that the result of partial function application in this case is a function that takes two arguments. 3532: 5428: 1534: 7568: 7496: 7446: 7281: 7039: 6866: 6376: 5073: 4856: 4720: 4145: 3645: 1796: 1222: 1098: 938: 890: 47: 7847: 7750: 7596: 7576: 7521: 6322: 6072: 5904: 5065: 4780: 3603: 3559: 3338: 2662: 2226: 1107: 930: 60: 2360: 401: 6798: 3943: 3725: 2199:
for the set of functions. As is the case in all instances of currying, the formula above describes an
7659: 7616: 7611: 7601: 7511: 7170: 7111: 7079: 6980:
Logic in Computer Science (LICS 2004): Proceedings, 19th Annual IEEE Symposium, Turku, Finland, 2004]
6360: 6309: 4626: 4270: 4141: 3664: 2196: 1176: 1161: 1122: 1111: 916: 893: 6381: 4989: 4959: 4296: 3609: 3505: 3291: 2472: 2258: 1651: 1288: 705: 586: 287: 7699: 7684: 7679: 7536: 7421: 7367: 6007: 5200: 5132: 5058: 4577: 4474: 4073: 3629: 3555: 3544: 2350: 2342: 2296: 1954: 1948: 1141: 934: 699: 170: 4661: 7821: 7800: 7709: 7606: 7456: 7349: 7301: 7263: 6983: 6840: 6706: 6583: 6461: 6402: 6339: 6224: 6196: 5180: 5172: 5152: 4708: 4704: 4592: 4111: 3571: 3187: 3175: 2326: 2033: 7101: 3196: 1839:
is the reverse transformation, and is most easily understood in terms of its right adjoint, the
6816:
Tillotson, J.; Booth, Peter I. (March 1980) . Written at Memorial University of Newfoundland.
6769:. Chicago lectures in mathematics. Chicago, Ill.: University of Chicago Press. pp. 39–55. 6761: 5096:
of cartesian closed categories; and it is for this reason that pairs and lists are the primary
4400: 3636:. Scott-continuous functions were first investigated in the attempt to provide a semantics for 1987: 1320: 1133:, where in both cases all functions have exactly one argument. This property is inherited from 7491: 7334: 7324: 7319: 7291: 7286: 6978:
Abramsky, Samson; Coecke, Bob (5 March 2007). "A categorical semantics of quantum protocols".
6958: 6929: 6906: 6896: 6848: 6780: 6770: 6692: 6575: 6565: 6520: 6451: 6394: 6289: 6214: 5643:
Partial application can be seen as evaluating a curried function at a fixed point, e.g. given
5333: 5164: 5120: 5093: 5081: 5047: 4824: 4478: 4293:
in computer science is formalized into a specific algebra of types. For example, when writing
4067: 3923: 3482: 3379: 3348: 3317: 2584:{\displaystyle {\text{curry}}:{\text{Hom}}(X\times Y,Z)\to {\text{Hom}}(X,{\text{Hom}}(Y,Z)),} 2354: 1904: 1388: 6950: 4430: 1471:
may be sets, or they may be types, or they may be other kinds of objects, as explored below.
469: 7790: 7531: 7476: 7397: 7387: 7377: 7372: 7012: 6993: 6957:. New York: Springer-Verlag, part of Springer Science & Business Media. pp. 48–57. 6832: 6683: 6557: 6492: 6476: 6443: 6429: 6386: 6331: 6206: 5972: 5937: 5696: 5069: 4983: 4832: 4699:
The above notions of currying and uncurrying find their most general, abstract statement in
4631: 4390: 4151: 3690: 3668: 2996:
locally compact Hausdorff. These two results are central for establishing the continuity of
2292: 2200: 1622: 1198: 1184: 769: 545: 351: 255: 39: 19:
This article is about the mathematical technique. For the cooking process of this name, see
6256: 5015: 4597: 3940:
is the abstractor of lambda calculus. Since curry takes, as input, functions with the type
3142: 2952: 2809: 2597: 2445: 2301: 1879: 518: 442: 7780: 7726: 7704: 7481: 7436: 7407: 7382: 7362: 7309: 7276: 7252: 6077: 5592:
of the function, you get a function of the remaining arguments". For example, if function
5077: 5054: 5043: 4700: 4655: 4622: 4470: 4372: 3684: 3637: 3599: 3525: 2346: 1134: 6665:"Frequently Asked Questions for comp.lang.functional, 3. Technical topics, 3.2. Currying" 4986:, the two are the same. When the product is the cartesian product, then the internal hom 3182:, and, as such, plays an important role in a variety of different settings. For example, 6433: 5823:{\displaystyle {\text{curry}}({\text{partial}}(f)_{a})(y)(z)={\text{curry}}(f)(a)(y)(z)} 4266:
That is, the parenthesis are not required to disambiguate the order of the application.
1125:
almost always use curried functions to achieve multiple arguments; notable examples are
983: 232: 147: 124: 7765: 7626: 7329: 7314: 5471: 5136: 4838: 4348: 4328: 3811: 3791: 3767: 3653: 3633: 3575: 3567: 3548: 3462: 3442: 3422: 3402: 3285: 3122: 3102: 3023: 3003: 2979: 2841: 2789: 2769: 2668: 2644: 2624: 2425: 2405: 2338: 2206: 2113: 2093: 2073: 2013: 1930: 1910: 1773: 1753: 1733: 1713: 1602: 1582: 1454: 1434: 1414: 1394: 1370: 1350: 1268: 1248: 1228: 1068: 1048: 1028: 1008: 963: 943: 749: 729: 498: 381: 331: 311: 212: 104: 6561: 3255: 1101:
with a single argument. Practical functions frequently take more arguments than this.
886:
The currying of a function with more than two arguments can be defined by induction.
7862: 7586: 7431: 7392: 7339: 7062: 6817: 6652:. Vol. I (2 ed.). Amsterdam, Netherlands: North-Holland Publishing Company. 6645: 6587: 6545: 6343: 6252: 6228: 5176: 5144: 5124: 4588:) corresponds to conjunction in logic, and function type corresponds to implication. 4394: 3641: 3543:) can be understood as a form of currying, which in turn leads to the duality of the 2763: 1165: 1157: 1102: 920: 912: 6406: 7842: 7805: 7694: 7669: 7461: 6818:"Monoidal closed, Cartesian closed and convenient categories of topological spaces" 6232: 5184: 5140: 5128: 5085: 4942:{\displaystyle \mathrm {Hom} (A\otimes B,C)\cong \mathrm {Hom} (A,B\Rightarrow C).} 4828: 4585: 4424: 3595: 1344: 6664: 6465: 6161: 6890: 6513:
Formal Syntax and Semantics of Programming Languages: A Laboratory Based Approach
6260: 5488:
above, we might fix (or 'bind') the first argument, producing a function of type
7795: 7770: 7755: 7674: 7506: 7074: 6210: 6087: 5148: 5101: 5097: 4723: 4502:, the existence of currying and uncurrying is equivalent to the logical theorem 4366: 4290: 4286: 3657: 3583: 3579: 3563: 3536: 2395: 35: 5053:
The setting of cartesian closed categories is sufficient for the discussion of
4469:
The type-theoretical approach provides a natural complement to the language of
1187:
defined "currying" in a 1972 paper, but did not claim to have coined the term.
6997: 6604: 6496: 6390: 3369: 3183: 1873: 6852: 6844: 6579: 6398: 5330:. That is, while an evaluation of the first function might be represented as 7775: 6910: 6784: 5168: 4450:
The type-theoretical approach is expressed in programming languages such as
3540: 2492: 28: 7213: 6836: 6437: 6138: 4956:
denotes the (external) Hom-functor of all morphisms in the category, while
4490:), and as other types of mathematical systems, as explored further, below. 6447: 6364: 4982:
denotes the internal hom functor in the closed monoidal category. For the
1137:, where multi-argument functions are usually represented in curried form. 16:
Transforming a function in such a way that it only takes a single argument
7120: 7070: 6988: 5191:, such as mutual exclusion locks, and the operation of vending machines. 5057:; the more general setting of closed monoidal categories is suitable for 2997: 54:
into a sequence of families of functions, each taking a single argument.
5042:
Currying can break down in one of two ways. One is if a category is not
2848:, usually called "evaluation" in this context, is continuous (note that 796:
Using the same notation as above, partial application has the signature
7133: 6335: 4459: 1130: 24: 3687:, in which functions only take a single argument. Consider a function 5588:
Intuitively, partial function application says "if you fix the first
2844:
its curried form is continuous. Another important result is that the
883:
Written this way, application can be seen to be adjoint to currying.
6831:(1). Berkeley, California: Mathematical Sciences Publishers: 35–53. 6691:. Malden, Massachusetts: Blackwell Publishers, an imprint of Wiley. 5620:
that returns the multiplicative inverse of its argument, defined by
4473:, as discussed below. This is because categories, and specifically, 4056:{\displaystyle {\text{curry}}:((X\times Y)\to Z)\to (X\to (Y\to Z))} 6955:
Sheaves in Geometry and Logic: A First Introduction to Topos Theory
6286:
From Frege to Gödel: A Source Book in Mathematical Logic, 1879-1931
4255:{\displaystyle (({\text{curry}}(f)\;x)\;y)={\text{curry}}(f)\;x\;y} 6481:"Definitional Interpreters for Higher-Order Programming Languages" 6434:"Definitional interpreters for higher-order programming languages" 6201: 5207: 4581: 3528:
that maps suspensions to loop spaces, and uncurrying is the dual.
2845: 1840: 889:
Currying is useful in both practical and theoretical settings. In
20: 6895:. Graduate texts in mathematics; 119. New York: Springer-Verlag. 6556:. North-Holland Publishing Company, imprint of Elsevier: 85–101. 378:
The proper notation for expressing this is verbose. The function
7031: 5894:{\displaystyle {\text{partial}}(f)_{a}={\text{curry}}_{1}(f)(a)} 5105: 4569:{\displaystyle ((A\land B)\to C)\Leftrightarrow (A\to (B\to C))} 4455: 3910:{\displaystyle {\text{curry}}(f)=\lambda x.(\lambda y.(f(x,y)))} 2849: 7217: 7035: 3558:, the relationship between currying and uncurrying is known as 2852:
is a strictly different concept in computer science.) That is,
6924:
Barendregt, Hendrik Pieter (1984). "Theorems 1.2.13, 1.2.14".
6728:"Programming language, Currying, or Schonfinkeling?, #9 / 14" 5371:, evaluation of the curried function would be represented as 4687:, thus making it clear that the exponential object really is 3099:
can be thought of as either a homotopy of two functions from
5323:{\displaystyle {\text{curry}}(f)\colon X\to (Y\to (Z\to N))} 2752:{\displaystyle {\text{curry}}:Z^{X\times Y}\to (Z^{Y})^{X}} 5536:{\displaystyle {\text{partial}}(f)\colon (Y\times Z)\to N} 5159:, and, more generally, allow a vast generalization of the 4486:
programming languages to be re-interpreted as logics (via
933:
transformation to currying, and can be seen as a form of
2195:
Indeed, it is this natural bijection that justifies the
57:
In the prototypical example, one begins with a function
6552:. Studies in Logic and the Foundations of Mathematics. 6316:[On the building blocks of mathematical logic] 6663:
Hutton, Graham; Jones, Mark P., eds. (November 2002).
5543:. Evaluation of this function might be represented as 2840:
One useful corollary is that a function is continuous
804: 710: 615: 591: 328:
as an argument, and returns a function that maps each
292: 6143:
Lambda the Ultimate: The Programming Languages Weblog
6132: 6130: 6128: 6010: 5975: 5940: 5907: 5836: 5725: 5699: 5649: 5549: 5494: 5474: 5431: 5377: 5336: 5269: 5219: 5018: 4992: 4962: 4868: 4841: 4783: 4739: 4664: 4634: 4600: 4508: 4433: 4403: 4375: 4351: 4331: 4299: 4192: 4154: 4114: 4076: 3987: 3946: 3926: 3841: 3814: 3794: 3770: 3728: 3693: 3612: 3508: 3485: 3465: 3445: 3425: 3405: 3382: 3351: 3320: 3294: 3258: 3199: 3145: 3125: 3105: 3046: 3026: 3006: 2982: 2955: 2860: 2812: 2792: 2772: 2698: 2671: 2647: 2627: 2600: 2503: 2475: 2448: 2428: 2408: 2363: 2304: 2261: 2229: 2209: 2139: 2116: 2096: 2076: 2036: 2016: 1990: 1957: 1933: 1913: 1882: 1847: 1799: 1776: 1756: 1736: 1716: 1654: 1625: 1605: 1585: 1537: 1483: 1457: 1437: 1417: 1397: 1373: 1353: 1323: 1291: 1271: 1251: 1231: 1201: 1156:
The "Curry" in "Currying" is a reference to logician
1071: 1051: 1031: 1011: 986: 966: 946: 802: 772: 752: 732: 708: 613: 589: 548: 521: 501: 472: 445: 404: 384: 354: 334: 314: 290: 258: 235: 215: 173: 150: 127: 107: 63: 6139:"Currying != Generalized Partial Application?!" 2469:
to denote the subset of continuous functions. Here,
1171:
The originator of the word "currying" is not clear.
7835: 7814: 7743: 7718: 7635: 7520: 7420: 7348: 7300: 7262: 7251: 7110: 7069: 4658:, and the exponential object has the explicit form 4454:and the languages derived from and inspired by it: 1085:, to those arguments. The process can be iterated. 6682:Heim, Irene; Kratzer, Angelika (January 2, 1998). 6519:. Addison-Wesley Publishing Company. p. 144. 6491:(4). Boston: Kluwer Academic Publishers: 363–397. 6439:Proceedings of the ACM annual conference - ACM '72 6052: 5996: 5961: 5922: 5893: 5822: 5711: 5685: 5577: 5535: 5480: 5453: 5417: 5363: 5322: 5255: 5031: 5004: 4974: 4941: 4847: 4808: 4769: 4679: 4646: 4613: 4568: 4439: 4415: 4381: 4357: 4337: 4317: 4254: 4175: 4132: 4100: 4055: 3970: 3932: 3909: 3820: 3800: 3776: 3752: 3714: 3620: 3516: 3494: 3471: 3451: 3431: 3411: 3391: 3360: 3329: 3306: 3276: 3241: 3158: 3139:, or, equivalently, a single (continuous) path in 3131: 3111: 3091: 3032: 3012: 2988: 2968: 2939: 2825: 2798: 2778: 2751: 2677: 2653: 2633: 2613: 2583: 2483: 2461: 2434: 2414: 2386: 2317: 2280: 2247: 2215: 2184: 2122: 2102: 2082: 2062: 2022: 2002: 1976: 1939: 1919: 1895: 1856: 1825: 1782: 1762: 1742: 1722: 1699: 1637: 1611: 1591: 1567: 1513: 1463: 1443: 1423: 1403: 1379: 1359: 1335: 1309: 1277: 1257: 1237: 1213: 1077: 1057: 1037: 1017: 997: 972: 952: 875: 788: 758: 738: 718: 686: 599: 575: 534: 507: 487: 458: 431: 390: 370: 340: 320: 300: 274: 244: 221: 201: 159: 136: 113: 93: 6625:Barendregt, Henk; Barendsen, Erik (March 2000) . 5616:1) is another function: the same as the function 3978:, one concludes that the type of curry itself is 3663:The notion of continuity makes its appearance in 5686:{\displaystyle f\colon (X\times Y\times Z)\to N} 5256:{\displaystyle f\colon (X\times Y\times Z)\to N} 4397:or arrow type. Similarly, the Cartesian product 2594:while uncurrying is the inverse map. If the set 1005:that takes as parameters the arguments for both 6614:. Cunningham & Cunningham, Inc. 6 May 2012. 6365:"Fundamental Concepts in Programming Languages" 1045:, and returns, as a result, the application of 904:, which underpins a vast generalization of the 209:The family is arranged so that for each object 6288:. Harvard University Press. pp. 355–357. 6162:"Partial Function Application is not Currying" 5155:. Such categories are suitable for describing 5139:. The internal language of such categories is 3092:{\displaystyle Z^{I\times Y}\cong (Z^{Y})^{I}} 2185:{\displaystyle A^{B\times C}\cong (A^{C})^{B}} 876:{\displaystyle {\mbox{apply}}:(\times X)\to .} 7229: 7047: 6926:The lambda calculus: its syntax and semantics 6314:"Ăśber die Bausteine der mathematischen Logik" 5064:The difference between these two is that the 1181:Fundamental Concepts in Programming Languages 698:Currying is related to, but not the same as, 8: 6442:. Vol. 2. ACM Press. pp. 717–740. 1144:. In practice, the programming technique of 1140:Currying is related to, but not the same as 6949:Mac Lane, Saunders; Moerdijk, Ieke (1992). 6889:Rotman, Joseph Jonah (1988). "Chapter 11". 6867:"convenient category of topological spaces" 5418:{\displaystyle f_{\text{curried}}(1)(2)(3)} 4777:and the morphisms to an exponential object 3808:, and the function itself returns the type 687:{\displaystyle {\mbox{curry}}:\to (X\to ).} 7259: 7236: 7222: 7214: 7084: 7054: 7040: 7032: 6540: 6538: 6536: 6423: 6421: 6419: 6355: 6353: 6156: 6154: 6152: 5195:Contrast with partial function application 4248: 4244: 4220: 4213: 3760:, which should be understood to mean that 3722:taking two arguments, and having the type 3439:to the space of functions from loops into 911:The concept of currying was introduced by 6987: 6884: 6882: 6880: 6669:University of Nottingham Computer Science 6380: 6200: 6181: 6179: 6009: 5974: 5939: 5914: 5909: 5906: 5867: 5862: 5852: 5837: 5835: 5779: 5749: 5734: 5726: 5724: 5698: 5648: 5554: 5548: 5495: 5493: 5473: 5436: 5430: 5382: 5376: 5335: 5270: 5268: 5218: 5023: 5017: 4991: 4961: 4904: 4869: 4867: 4840: 4800: 4782: 4738: 4663: 4633: 4605: 4599: 4507: 4432: 4402: 4374: 4350: 4330: 4298: 4230: 4199: 4191: 4153: 4113: 4075: 3988: 3986: 3945: 3925: 3842: 3840: 3813: 3793: 3769: 3727: 3692: 3613: 3611: 3562:. Here, an interesting twist arises: the 3509: 3507: 3484: 3464: 3444: 3424: 3404: 3381: 3350: 3319: 3293: 3257: 3198: 3150: 3144: 3124: 3104: 3083: 3073: 3051: 3045: 3025: 3005: 2981: 2960: 2954: 2879: 2867: 2861: 2859: 2817: 2811: 2791: 2771: 2743: 2733: 2711: 2699: 2697: 2670: 2646: 2626: 2605: 2599: 2555: 2541: 2512: 2504: 2502: 2476: 2474: 2453: 2447: 2427: 2407: 2364: 2362: 2309: 2303: 2272: 2260: 2228: 2208: 2176: 2166: 2144: 2138: 2115: 2095: 2075: 2054: 2044: 2035: 2015: 1989: 1962: 1956: 1932: 1912: 1887: 1881: 1846: 1800: 1798: 1775: 1755: 1735: 1715: 1653: 1624: 1604: 1584: 1536: 1482: 1456: 1436: 1416: 1396: 1372: 1352: 1322: 1290: 1270: 1250: 1230: 1200: 1070: 1050: 1030: 1010: 985: 965: 945: 803: 801: 777: 771: 751: 731: 709: 707: 614: 612: 590: 588: 547: 526: 520: 500: 471: 450: 444: 403: 383: 359: 353: 333: 313: 291: 289: 263: 257: 234: 214: 178: 172: 149: 126: 106: 62: 23:. For the leather finishing process, see 4819:This generalizes to a broader result in 4770:{\displaystyle f\colon (X\times Y)\to Z} 3399:can be seen as the cartesian product of 1514:{\displaystyle f\colon (X\times Y)\to Z} 1160:, who used the concept extensively, but 6799:"compactly generated topological space" 6312:(September 1924) . Written at Moskau. 6276: 6274: 6272: 6247: 6245: 6124: 5578:{\displaystyle f_{\text{partial}}(2,3)} 1857:{\displaystyle \operatorname {apply} .} 960:whose return value is another function 6763:A concise course in algebraic topology 6755: 6753: 6704: 5068:for cartesian categories (such as the 3578:; this leads to the definition of the 308:itself becomes a function, that takes 7013:"Functional Programming in 5 Minutes" 6892:An introduction to algebraic topology 6485:Higher-Order and Symbolic Computation 6369:Higher-Order and Symbolic Computation 6172:from the original on 23 October 2016. 5454:{\displaystyle f_{\text{curried}}(1)} 4823:: Currying is the statement that the 4269:Curried functions may be used in any 1568:{\displaystyle g\colon X\to (Y\to Z)} 7: 4654:. Distributive Heyting algebras are 1826:{\displaystyle {\text{curry}}(f)=g.} 6732:Computer Programming Language Forum 6330:(3–4). Berlin?: Springer: 305–316. 4066:The → operator is often considered 3178:, currying serves as an example of 766:together as arguments, and returns 101:that takes two arguments, one from 7182:Category:Mathematical philosophers 5923:{\displaystyle {\text{curry}}_{1}} 5596:stands for the division operation 4911: 4908: 4905: 4876: 4873: 4870: 4809:{\displaystyle g\colon X\to Z^{Y}} 4665: 3652:; the Scott topology is typically 3486: 3383: 3352: 3321: 3230: 3203: 2248:{\displaystyle B\mapsto B\times C} 94:{\displaystyle f:(X\times Y)\to Z} 46:is the technique of translating a 14: 6738:from the original on 3 March 2022 3644:, which encompasses the study of 2837:, although there are more cases. 2387:{\displaystyle {\text{Hom}}(X,Y)} 432:{\displaystyle (X\times Y)\to Z.} 7196: 7195: 7186: 7185: 7176: 7175: 7147: 5114:functional programming languages 3971:{\displaystyle (X\times Y)\to Z} 3753:{\displaystyle (X\times Y)\to Z} 2349:, one is commonly interested in 466:belongs to the set of functions 398:belongs to the set of functions 7734:Enterprise Integration Patterns 6982:. IEEE Computer Society Press. 6685:Semantics in Generative Grammar 6628:Introduction to Lambda Calculus 5012:becomes the exponential object 4423:of types is constructed by the 4070:, so the curried function type 2255:is left adjoint to the functor 1619:and returns a function of type 1094: 6825:Pacific Journal of Mathematics 6634:(Revised ed.). p. 8. 6436:. In Shields, Rosemary (ed.). 6047: 6035: 6026: 6014: 5991: 5979: 5956: 5944: 5888: 5882: 5879: 5873: 5849: 5842: 5817: 5811: 5808: 5802: 5799: 5793: 5790: 5784: 5773: 5767: 5764: 5758: 5755: 5746: 5739: 5731: 5677: 5674: 5656: 5572: 5560: 5527: 5524: 5512: 5506: 5500: 5448: 5442: 5412: 5406: 5403: 5397: 5394: 5388: 5358: 5340: 5317: 5314: 5308: 5302: 5299: 5293: 5290: 5281: 5275: 5247: 5244: 5226: 5005:{\displaystyle B\Rightarrow C} 4996: 4975:{\displaystyle B\Rightarrow C} 4966: 4933: 4927: 4915: 4898: 4880: 4793: 4761: 4758: 4746: 4638: 4563: 4560: 4554: 4548: 4545: 4539: 4536: 4533: 4527: 4524: 4512: 4509: 4376: 4318:{\displaystyle f\colon X\to Y} 4309: 4241: 4235: 4224: 4217: 4210: 4204: 4196: 4193: 4170: 4158: 4124: 4118: 4095: 4089: 4083: 4080: 4050: 4047: 4041: 4035: 4032: 4026: 4023: 4020: 4014: 4011: 3999: 3996: 3962: 3959: 3947: 3904: 3901: 3898: 3886: 3880: 3868: 3853: 3847: 3744: 3741: 3729: 3709: 3697: 3650:category of topological spaces 3632:when the lattice is given the 3621:{\displaystyle {\text{curry}}} 3517:{\displaystyle {\text{curry}}} 3307:{\displaystyle A\rightarrow B} 3298: 3271: 3259: 3236: 3221: 3215: 3200: 3190:; this is commonly written as 3080: 3066: 2930: 2924: 2918: 2915: 2903: 2891: 2740: 2726: 2723: 2575: 2572: 2560: 2546: 2538: 2535: 2517: 2484:{\displaystyle {\text{curry}}} 2381: 2369: 2281:{\displaystyle A\mapsto A^{C}} 2265: 2233: 2173: 2159: 2051: 2037: 1811: 1805: 1700:{\displaystyle g(x)(y)=f(x,y)} 1694: 1682: 1673: 1667: 1664: 1658: 1629: 1562: 1556: 1550: 1547: 1505: 1502: 1490: 1310:{\displaystyle f\colon X\to Y} 1301: 1205: 867: 861: 855: 852: 849: 840: 834: 831: 819: 816: 813: 719:{\displaystyle {\mbox{apply}}} 678: 675: 669: 663: 660: 654: 651: 648: 642: 639: 627: 624: 600:{\displaystyle {\mbox{curry}}} 567: 561: 555: 552: 476: 420: 417: 405: 301:{\displaystyle {\mbox{curry}}} 252:there is exactly one function 190: 85: 82: 70: 1: 6711:: CS1 maint: date and year ( 6562:10.1016/S0049-237X(08)71254-0 6053:{\displaystyle g(y,x)=f(x,y)} 5930:curries f's first parameter. 5119:By contrast, the product for 4101:{\displaystyle X\to (Y\to Z)} 3376:. In essence, the suspension 2766:. This is also the case when 2621:of continuous functions from 2090:to the set of functions from 1977:{\displaystyle A^{B\times C}} 1285:is such a function, we write 202:{\displaystyle f_{x}:Y\to Z.} 6726:Turner, David (1 Jun 1997). 5466:partial function application 5090:Simply typed lambda calculus 4835:; that is, for every object 4680:{\displaystyle \neg P\lor Q} 4483:simply-typed lambda calculus 3681:theoretical computer science 1175:says the word was coined by 1106:typically be encountered in 980:, and yields a new function 898:theoretical computer science 7827:Portland Pattern Repository 7092:Curry–Howard correspondence 7011:Lee, G. Kay (15 May 2013). 6610:Portland Pattern Repository 6262:Grundgesetze der arithmetik 6211:10.1007/978-3-642-12821-9_2 5161:Curry–Howard correspondence 4717:cartesian closed categories 4500:Curry–Howard correspondence 4488:Curry–Howard correspondence 4133:{\displaystyle X\to Y\to Z} 2063:{\displaystyle (A^{C})^{B}} 1387:respectively, that is, the 919:, and further developed by 906:Curry–Howard correspondence 7895: 6605:"Currying Schonfinkelling" 6189:New Structures for Physics 6083:Closure (computer science) 5198: 5189:synchronization primitives 5187:are useful for describing 5084:; it is interpreted as an 4821:closed monoidal categories 3242:{\displaystyle \approxeq } 1907:of functions from the set 1599:takes an argument of type 1528:constructs a new function 1179:in his 1967 lecture notes 1116:closed monoidal categories 902:closed monoidal categories 495:Thus, something that maps 27:. For horse grooming, see 18: 7156: 7145: 7087: 6998:10.1109/LICS.2004.1319636 6004:may be defined such that 5213:Given a function of type 4416:{\displaystyle X\times Y} 3598:, that is, the theory of 2687:locally compact Hausdorff 2003:{\displaystyle B\times C} 1336:{\displaystyle X\times Y} 7452:Event-based asynchronous 7245:Software design patterns 6427:Originally published as 6137:cdiggins (24 May 2007). 6113:Closed monoidal category 5364:{\displaystyle f(1,2,3)} 5157:entangled quantum states 4289:, the general idea of a 3933:{\displaystyle \lambda } 3531:The duality between the 3495:{\displaystyle \Omega Z} 3392:{\displaystyle \Sigma X} 3361:{\displaystyle \Omega A} 3330:{\displaystyle \Sigma A} 2442:, and uses the notation 2201:adjoint pair of functors 144:and produces objects in 7358:Chain of responsibility 7192:Category:Mathematicians 6760:May, Jon Peter (1999). 6648:; Feys, Robert (1958). 6497:10.1023/A:1010027404223 6391:10.1023/A:1010000313106 5074:complete partial orders 4711:, and gives rise to an 4625:is normally written as 4440:{\displaystyle \times } 3671:from one to the other. 3535:and the mapping fiber ( 1097:can only be applied to 488:{\displaystyle Y\to Z.} 7874:Functional programming 7869:Higher-order functions 7497:Scheduled-task pattern 7447:Double-checked locking 6837:10.2140/pjm.1980.88.35 6054: 5998: 5997:{\displaystyle g(y,x)} 5963: 5962:{\displaystyle f(x,y)} 5924: 5895: 5824: 5713: 5712:{\displaystyle a\in X} 5687: 5579: 5537: 5482: 5455: 5419: 5365: 5324: 5257: 5088:of items (or a list). 5033: 5006: 4976: 4943: 4849: 4810: 4771: 4719:. That is, there is a 4681: 4648: 4647:{\displaystyle P\to Q} 4615: 4570: 4441: 4417: 4383: 4359: 4339: 4319: 4256: 4177: 4176:{\displaystyle f(x,y)} 4134: 4102: 4057: 3972: 3934: 3911: 3828:. The curried form of 3822: 3802: 3778: 3754: 3716: 3715:{\displaystyle f(x,y)} 3646:denotational semantics 3622: 3604:partially ordered sets 3518: 3496: 3473: 3453: 3433: 3413: 3393: 3362: 3331: 3308: 3278: 3243: 3180:Eckmann–Hilton duality 3160: 3133: 3113: 3093: 3034: 3014: 2990: 2970: 2941: 2827: 2800: 2780: 2753: 2679: 2655: 2635: 2615: 2585: 2485: 2463: 2436: 2416: 2388: 2319: 2282: 2249: 2217: 2203:: for every fixed set 2186: 2124: 2104: 2084: 2064: 2024: 2004: 1978: 1941: 1921: 1903:is used to denote the 1897: 1858: 1827: 1784: 1764: 1744: 1724: 1701: 1639: 1638:{\displaystyle Y\to Z} 1613: 1593: 1569: 1515: 1465: 1445: 1425: 1405: 1381: 1361: 1337: 1311: 1279: 1259: 1239: 1215: 1214:{\displaystyle X\to Y} 1079: 1059: 1039: 1019: 999: 974: 954: 891:functional programming 877: 790: 789:{\displaystyle f_{x}.} 760: 740: 720: 688: 601: 577: 576:{\displaystyle X\to .} 536: 509: 489: 460: 433: 392: 372: 371:{\displaystyle f_{x}.} 342: 322: 302: 276: 275:{\displaystyle f_{x}.} 246: 223: 203: 161: 138: 115: 95: 7848:Architectural pattern 7751:Christopher Alexander 7112:Programming languages 6448:10.1145/800194.805852 6361:Strachey, Christopher 6323:Mathematische Annalen 6073:Tensor-hom adjunction 6055: 5999: 5964: 5925: 5896: 5825: 5714: 5688: 5580: 5538: 5483: 5456: 5420: 5366: 5325: 5258: 5210:is greater than two. 5034: 5032:{\displaystyle C^{B}} 5007: 4977: 4944: 4850: 4811: 4772: 4682: 4649: 4616: 4614:{\displaystyle Q^{P}} 4571: 4442: 4418: 4384: 4360: 4340: 4325:, the intent is that 4320: 4257: 4178: 4135: 4103: 4058: 3973: 3935: 3912: 3823: 3803: 3779: 3755: 3717: 3623: 3560:tensor-hom adjunction 3519: 3497: 3474: 3454: 3434: 3414: 3394: 3363: 3332: 3309: 3279: 3244: 3161: 3159:{\displaystyle Z^{Y}} 3134: 3114: 3094: 3035: 3020:is the unit interval 3015: 2991: 2971: 2969:{\displaystyle Y^{X}} 2942: 2828: 2826:{\displaystyle Y^{X}} 2801: 2781: 2754: 2680: 2663:compact-open topology 2656: 2636: 2616: 2614:{\displaystyle Y^{X}} 2586: 2486: 2464: 2462:{\displaystyle Y^{X}} 2437: 2417: 2389: 2320: 2318:{\displaystyle Y^{X}} 2283: 2250: 2218: 2187: 2125: 2105: 2085: 2065: 2025: 2005: 1979: 1942: 1922: 1898: 1896:{\displaystyle Y^{X}} 1859: 1828: 1790:. We then also write 1785: 1765: 1745: 1725: 1702: 1640: 1614: 1594: 1570: 1516: 1466: 1446: 1426: 1406: 1382: 1362: 1338: 1312: 1280: 1260: 1240: 1216: 1123:programming languages 1108:mathematical analysis 1095:analytical techniques 1080: 1060: 1040: 1020: 1000: 975: 955: 878: 791: 761: 741: 721: 689: 602: 578: 537: 535:{\displaystyle f_{x}} 510: 490: 461: 459:{\displaystyle f_{x}} 434: 393: 373: 343: 323: 303: 277: 247: 224: 204: 162: 139: 116: 96: 7660:Dependency injection 7617:Inversion of control 7612:Data transfer object 7512:Thread-local storage 7171:Open-source software 7080:computer programming 6008: 5973: 5938: 5905: 5834: 5723: 5697: 5647: 5547: 5492: 5472: 5429: 5375: 5334: 5267: 5263:, currying produces 5217: 5147:; the corresponding 5016: 4990: 4960: 4866: 4839: 4781: 4737: 4689:material implication 4662: 4632: 4627:material implication 4598: 4506: 4431: 4401: 4393:, specifically, the 4382:{\displaystyle \to } 4373: 4349: 4329: 4297: 4271:programming language 4190: 4152: 4144:is considered to be 4142:function application 4112: 4108:is often written as 4074: 3985: 3944: 3924: 3839: 3812: 3792: 3768: 3726: 3691: 3665:homotopy type theory 3610: 3506: 3483: 3463: 3443: 3423: 3403: 3380: 3349: 3318: 3292: 3256: 3197: 3143: 3123: 3103: 3044: 3024: 3004: 2980: 2976:is compact-open and 2953: 2858: 2810: 2790: 2770: 2696: 2669: 2645: 2625: 2598: 2501: 2473: 2446: 2426: 2406: 2361: 2351:continuous functions 2302: 2259: 2227: 2207: 2197:exponential notation 2137: 2114: 2094: 2074: 2034: 2014: 1988: 1955: 1931: 1911: 1880: 1845: 1797: 1774: 1754: 1734: 1714: 1652: 1623: 1603: 1583: 1535: 1481: 1455: 1435: 1415: 1395: 1371: 1351: 1321: 1289: 1269: 1249: 1229: 1199: 1177:Christopher Strachey 1112:computer programming 1069: 1049: 1029: 1009: 984: 964: 944: 800: 770: 750: 730: 726:that takes the pair 706: 611: 587: 583:With this notation, 546: 542:will be of the type 519: 499: 470: 443: 402: 382: 352: 332: 312: 288: 256: 233: 213: 171: 148: 125: 105: 61: 50:that takes multiple 7665:Intercepting filter 6238:on 5 December 2022. 5608:with the parameter 5201:Partial application 5133:functional analysis 5121:monoidal categories 5059:quantum computation 4857:natural isomorphism 4621:in the category of 4475:monoidal categories 3788:must have the type 3764:must have the type 3630:continuous function 3556:homological algebra 3188:reduced suspensions 2949:is continuous when 2835:compactly generated 2665:, and if the space 2343:functional analysis 1645:. It is defined by 1347:of the elements of 1142:partial application 935:defunctionalization 700:partial application 7822:The Hillside Group 7607:Data access object 7457:Guarded suspension 7442:Binding properties 7202:Category:Logicians 6336:10.1007/BF01448013 6310:Schönfinkel, Moses 6166:The Uncarved Block 6050: 5994: 5959: 5920: 5891: 5820: 5709: 5683: 5612:fixed at 1 (i.e., 5575: 5533: 5478: 5451: 5415: 5361: 5320: 5253: 5181:linear type system 5173:algebraic topology 5153:linear type system 5029: 5002: 4972: 4939: 4845: 4806: 4767: 4709:exponential object 4705:universal property 4677: 4644: 4611: 4593:exponential object 4566: 4437: 4413: 4379: 4369:, while the arrow 4355: 4335: 4315: 4252: 4173: 4130: 4098: 4053: 3968: 3930: 3907: 3818: 3798: 3774: 3750: 3712: 3618: 3570:functor might not 3514: 3492: 3469: 3449: 3429: 3409: 3389: 3358: 3327: 3304: 3274: 3239: 3176:algebraic topology 3170:Algebraic topology 3156: 3129: 3109: 3089: 3030: 3010: 2986: 2966: 2937: 2935: 2823: 2796: 2776: 2749: 2675: 2651: 2631: 2611: 2581: 2481: 2459: 2432: 2412: 2384: 2355:topological spaces 2327:exponential object 2315: 2278: 2245: 2213: 2182: 2120: 2100: 2080: 2070:of functions from 2060: 2020: 2000: 1984:of functions from 1974: 1947:. Currying is the 1937: 1917: 1893: 1854: 1823: 1780: 1760: 1740: 1720: 1697: 1635: 1609: 1589: 1565: 1511: 1461: 1441: 1421: 1401: 1377: 1357: 1333: 1307: 1275: 1255: 1235: 1211: 1075: 1065:and subsequently, 1055: 1035: 1015: 998:{\displaystyle f'} 995: 970: 950: 873: 808: 786: 756: 736: 716: 714: 684: 619: 597: 595: 573: 532: 505: 485: 456: 429: 388: 368: 338: 318: 298: 296: 272: 245:{\displaystyle X,} 242: 219: 199: 160:{\displaystyle Z.} 157: 137:{\displaystyle Y,} 134: 111: 91: 7856: 7855: 7650:Business delegate 7582:Publish–subscribe 7416: 7415: 7211: 7210: 7143: 7142: 6964:978-0-387-97710-2 6935:978-0-444-87508-2 6902:978-0-387-96678-6 6873:. 11 August 2023. 6650:Combinatory logic 6546:Curry, Haskell B. 6477:Reynolds, John C. 6432:(1 August 1972). 6430:Reynolds, John C. 6220:978-3-642-12821-9 6168:. 7 August 2020. 5912: 5865: 5840: 5782: 5737: 5729: 5557: 5498: 5481:{\displaystyle f} 5439: 5385: 5273: 5165:quantum mechanics 5094:internal language 5082:Cartesian product 4848:{\displaystyle B} 4479:internal language 4358:{\displaystyle Y} 4338:{\displaystyle X} 4233: 4202: 4183:is equivalent to 4068:right-associative 3991: 3845: 3821:{\displaystyle Z} 3801:{\displaystyle Y} 3777:{\displaystyle X} 3616: 3512: 3472:{\displaystyle X} 3452:{\displaystyle Z} 3432:{\displaystyle X} 3412:{\displaystyle X} 3132:{\displaystyle Z} 3112:{\displaystyle Y} 3033:{\displaystyle I} 3013:{\displaystyle X} 2989:{\displaystyle Y} 2870: 2799:{\displaystyle Y} 2779:{\displaystyle X} 2702: 2678:{\displaystyle Y} 2654:{\displaystyle Y} 2634:{\displaystyle X} 2558: 2544: 2515: 2507: 2479: 2435:{\displaystyle Y} 2415:{\displaystyle X} 2398:) for the set of 2367: 2337:In the theory of 2216:{\displaystyle C} 2123:{\displaystyle A} 2103:{\displaystyle C} 2083:{\displaystyle B} 2023:{\displaystyle A} 1949:natural bijection 1940:{\displaystyle Y} 1920:{\displaystyle X} 1803: 1783:{\displaystyle Y} 1763:{\displaystyle y} 1743:{\displaystyle X} 1723:{\displaystyle x} 1612:{\displaystyle X} 1592:{\displaystyle g} 1474:Given a function 1464:{\displaystyle Y} 1444:{\displaystyle X} 1424:{\displaystyle Y} 1404:{\displaystyle X} 1389:Cartesian product 1380:{\displaystyle Y} 1360:{\displaystyle X} 1278:{\displaystyle f} 1258:{\displaystyle Y} 1238:{\displaystyle X} 1162:Moses Schönfinkel 1078:{\displaystyle g} 1058:{\displaystyle f} 1038:{\displaystyle g} 1018:{\displaystyle f} 973:{\displaystyle g} 953:{\displaystyle f} 917:Moses Schönfinkel 807: 759:{\displaystyle x} 739:{\displaystyle f} 713: 618: 594: 508:{\displaystyle x} 391:{\displaystyle f} 341:{\displaystyle x} 321:{\displaystyle f} 295: 284:In this example, 222:{\displaystyle x} 114:{\displaystyle X} 7886: 7655:Composite entity 7532:Front controller 7272:Abstract factory 7260: 7238: 7231: 7224: 7215: 7199: 7198: 7189: 7188: 7179: 7178: 7151: 7085: 7056: 7049: 7042: 7033: 7021: 7020: 7008: 7002: 7001: 6991: 6989:quant-ph/0402130 6975: 6969: 6968: 6946: 6940: 6939: 6921: 6915: 6914: 6886: 6875: 6874: 6863: 6857: 6856: 6822: 6813: 6807: 6806: 6795: 6789: 6788: 6768: 6757: 6748: 6747: 6745: 6743: 6723: 6717: 6716: 6710: 6702: 6690: 6679: 6673: 6672: 6660: 6654: 6653: 6642: 6636: 6635: 6633: 6622: 6616: 6615: 6601: 6595: 6594: 6542: 6531: 6530: 6518: 6507: 6501: 6500: 6473: 6425: 6414: 6413: 6384: 6357: 6348: 6347: 6319: 6306: 6300: 6299: 6278: 6267: 6266: 6249: 6240: 6239: 6237: 6231:. Archived from 6204: 6194: 6183: 6174: 6173: 6158: 6147: 6146: 6134: 6106: 6105: 6104: 6101: 6095: 6092: 6059: 6057: 6056: 6051: 6003: 6001: 6000: 5995: 5968: 5966: 5965: 5960: 5929: 5927: 5926: 5921: 5919: 5918: 5913: 5910: 5900: 5898: 5897: 5892: 5872: 5871: 5866: 5863: 5857: 5856: 5841: 5838: 5829: 5827: 5826: 5821: 5783: 5780: 5754: 5753: 5738: 5735: 5730: 5727: 5718: 5716: 5715: 5710: 5692: 5690: 5689: 5684: 5639: 5584: 5582: 5581: 5576: 5559: 5558: 5555: 5542: 5540: 5539: 5534: 5499: 5496: 5487: 5485: 5484: 5479: 5460: 5458: 5457: 5452: 5441: 5440: 5437: 5424: 5422: 5421: 5416: 5387: 5386: 5383: 5370: 5368: 5367: 5362: 5329: 5327: 5326: 5321: 5274: 5271: 5262: 5260: 5259: 5254: 5078:Heyting algebras 5070:category of sets 5038: 5036: 5035: 5030: 5028: 5027: 5011: 5009: 5008: 5003: 4984:category of sets 4981: 4979: 4978: 4973: 4948: 4946: 4945: 4940: 4914: 4879: 4854: 4852: 4851: 4846: 4833:adjoint functors 4815: 4813: 4812: 4807: 4805: 4804: 4776: 4774: 4773: 4768: 4703:. Currying is a 4686: 4684: 4683: 4678: 4656:Boolean algebras 4653: 4651: 4650: 4645: 4623:Heyting algebras 4620: 4618: 4617: 4612: 4610: 4609: 4575: 4573: 4572: 4567: 4446: 4444: 4443: 4438: 4422: 4420: 4419: 4414: 4391:type constructor 4388: 4386: 4385: 4380: 4364: 4362: 4361: 4356: 4344: 4342: 4341: 4336: 4324: 4322: 4321: 4316: 4261: 4259: 4258: 4253: 4234: 4231: 4203: 4200: 4182: 4180: 4179: 4174: 4146:left-associative 4139: 4137: 4136: 4131: 4107: 4105: 4104: 4099: 4062: 4060: 4059: 4054: 3992: 3989: 3977: 3975: 3974: 3969: 3939: 3937: 3936: 3931: 3916: 3914: 3913: 3908: 3846: 3843: 3827: 3825: 3824: 3819: 3807: 3805: 3804: 3799: 3783: 3781: 3780: 3775: 3759: 3757: 3756: 3751: 3721: 3719: 3718: 3713: 3627: 3625: 3624: 3619: 3617: 3614: 3523: 3521: 3520: 3515: 3513: 3510: 3501: 3499: 3498: 3493: 3478: 3476: 3475: 3470: 3459:, that is, from 3458: 3456: 3455: 3450: 3438: 3436: 3435: 3430: 3418: 3416: 3415: 3410: 3398: 3396: 3395: 3390: 3367: 3365: 3364: 3359: 3336: 3334: 3333: 3328: 3313: 3311: 3310: 3305: 3286:homotopy classes 3283: 3281: 3280: 3277:{\displaystyle } 3275: 3248: 3246: 3245: 3240: 3165: 3163: 3162: 3157: 3155: 3154: 3138: 3136: 3135: 3130: 3118: 3116: 3115: 3110: 3098: 3096: 3095: 3090: 3088: 3087: 3078: 3077: 3062: 3061: 3039: 3037: 3036: 3031: 3019: 3017: 3016: 3011: 2995: 2993: 2992: 2987: 2975: 2973: 2972: 2967: 2965: 2964: 2946: 2944: 2943: 2938: 2936: 2901: 2900: 2884: 2883: 2871: 2868: 2865: 2864: 2832: 2830: 2829: 2824: 2822: 2821: 2805: 2803: 2802: 2797: 2785: 2783: 2782: 2777: 2758: 2756: 2755: 2750: 2748: 2747: 2738: 2737: 2722: 2721: 2703: 2700: 2684: 2682: 2681: 2676: 2660: 2658: 2657: 2652: 2640: 2638: 2637: 2632: 2620: 2618: 2617: 2612: 2610: 2609: 2590: 2588: 2587: 2582: 2559: 2556: 2545: 2542: 2516: 2513: 2508: 2505: 2490: 2488: 2487: 2482: 2480: 2477: 2468: 2466: 2465: 2460: 2458: 2457: 2441: 2439: 2438: 2433: 2421: 2419: 2418: 2413: 2393: 2391: 2390: 2385: 2368: 2365: 2324: 2322: 2321: 2316: 2314: 2313: 2293:category of sets 2287: 2285: 2284: 2279: 2277: 2276: 2254: 2252: 2251: 2246: 2222: 2220: 2219: 2214: 2191: 2189: 2188: 2183: 2181: 2180: 2171: 2170: 2155: 2154: 2129: 2127: 2126: 2121: 2109: 2107: 2106: 2101: 2089: 2087: 2086: 2081: 2069: 2067: 2066: 2061: 2059: 2058: 2049: 2048: 2029: 2027: 2026: 2021: 2009: 2007: 2006: 2001: 1983: 1981: 1980: 1975: 1973: 1972: 1951:between the set 1946: 1944: 1943: 1938: 1926: 1924: 1923: 1918: 1902: 1900: 1899: 1894: 1892: 1891: 1863: 1861: 1860: 1855: 1832: 1830: 1829: 1824: 1804: 1801: 1789: 1787: 1786: 1781: 1769: 1767: 1766: 1761: 1749: 1747: 1746: 1741: 1729: 1727: 1726: 1721: 1706: 1704: 1703: 1698: 1644: 1642: 1641: 1636: 1618: 1616: 1615: 1610: 1598: 1596: 1595: 1590: 1574: 1572: 1571: 1566: 1520: 1518: 1517: 1512: 1470: 1468: 1467: 1462: 1450: 1448: 1447: 1442: 1430: 1428: 1427: 1422: 1410: 1408: 1407: 1402: 1386: 1384: 1383: 1378: 1366: 1364: 1363: 1358: 1342: 1340: 1339: 1334: 1316: 1314: 1313: 1308: 1284: 1282: 1281: 1276: 1264: 1262: 1261: 1256: 1244: 1242: 1241: 1236: 1220: 1218: 1217: 1212: 1185:John C. Reynolds 1084: 1082: 1081: 1076: 1064: 1062: 1061: 1056: 1044: 1042: 1041: 1036: 1024: 1022: 1021: 1016: 1004: 1002: 1001: 996: 994: 979: 977: 976: 971: 959: 957: 956: 951: 882: 880: 879: 874: 809: 805: 795: 793: 792: 787: 782: 781: 765: 763: 762: 757: 745: 743: 742: 737: 725: 723: 722: 717: 715: 711: 693: 691: 690: 685: 620: 616: 606: 604: 603: 598: 596: 592: 582: 580: 579: 574: 541: 539: 538: 533: 531: 530: 514: 512: 511: 506: 494: 492: 491: 486: 465: 463: 462: 457: 455: 454: 438: 436: 435: 430: 397: 395: 394: 389: 377: 375: 374: 369: 364: 363: 347: 345: 344: 339: 327: 325: 324: 319: 307: 305: 304: 299: 297: 293: 281: 279: 278: 273: 268: 267: 251: 249: 248: 243: 228: 226: 225: 220: 208: 206: 205: 200: 183: 182: 166: 164: 163: 158: 143: 141: 140: 135: 120: 118: 117: 112: 100: 98: 97: 92: 40:computer science 7894: 7893: 7889: 7888: 7887: 7885: 7884: 7883: 7879:Lambda calculus 7859: 7858: 7857: 7852: 7831: 7810: 7801:Douglas Schmidt 7781:Ward Cunningham 7739: 7727:Design Patterns 7714: 7705:Method chaining 7637: 7631: 7592:Service locator 7523: 7516: 7487:Read–write lock 7423: 7412: 7403:Template method 7344: 7296: 7254: 7247: 7242: 7212: 7207: 7174: 7152: 7139: 7106: 7102:Curry's paradox 7078: 7065: 7060: 7030: 7025: 7024: 7010: 7009: 7005: 6977: 6976: 6972: 6965: 6948: 6947: 6943: 6936: 6923: 6922: 6918: 6903: 6888: 6887: 6878: 6865: 6864: 6860: 6820: 6815: 6814: 6810: 6797: 6796: 6792: 6777: 6766: 6759: 6758: 6751: 6741: 6739: 6725: 6724: 6720: 6703: 6699: 6688: 6681: 6680: 6676: 6662: 6661: 6657: 6644: 6643: 6639: 6631: 6624: 6623: 6619: 6603: 6602: 6598: 6572: 6544: 6543: 6534: 6527: 6516: 6509: 6508: 6504: 6475: 6474:Republished as 6458: 6428: 6426: 6417: 6382:10.1.1.332.3161 6363:(April 2000) . 6359: 6358: 6351: 6317: 6308: 6307: 6303: 6296: 6280: 6279: 6270: 6251: 6250: 6243: 6235: 6221: 6192: 6185: 6184: 6177: 6160: 6159: 6150: 6136: 6135: 6126: 6121: 6102: 6099: 6097: 6096: 6093: 6090: 6089: 6078:Lazy evaluation 6069: 6006: 6005: 5971: 5970: 5936: 5935: 5908: 5903: 5902: 5861: 5848: 5832: 5831: 5745: 5721: 5720: 5695: 5694: 5645: 5644: 5637: 5550: 5545: 5544: 5490: 5489: 5470: 5469: 5432: 5427: 5426: 5378: 5373: 5372: 5332: 5331: 5265: 5264: 5215: 5214: 5203: 5197: 5055:classical logic 5019: 5014: 5013: 4988: 4987: 4958: 4957: 4864: 4863: 4837: 4836: 4796: 4779: 4778: 4735: 4734: 4701:category theory 4697: 4695:Category theory 4660: 4659: 4630: 4629: 4601: 4596: 4595: 4576:(also known as 4504: 4503: 4496: 4471:category theory 4429: 4428: 4399: 4398: 4371: 4370: 4347: 4346: 4327: 4326: 4295: 4294: 4283: 4188: 4187: 4150: 4149: 4110: 4109: 4072: 4071: 3983: 3982: 3942: 3941: 3922: 3921: 3837: 3836: 3810: 3809: 3790: 3789: 3766: 3765: 3724: 3723: 3689: 3688: 3685:lambda calculus 3677: 3638:lambda calculus 3608: 3607: 3592: 3549:Puppe sequences 3526:adjoint functor 3504: 3503: 3481: 3480: 3461: 3460: 3441: 3440: 3421: 3420: 3401: 3400: 3378: 3377: 3347: 3346: 3316: 3315: 3290: 3289: 3254: 3253: 3195: 3194: 3172: 3146: 3141: 3140: 3121: 3120: 3101: 3100: 3079: 3069: 3047: 3042: 3041: 3022: 3021: 3002: 3001: 2978: 2977: 2956: 2951: 2950: 2934: 2933: 2898: 2897: 2875: 2856: 2855: 2846:application map 2813: 2808: 2807: 2788: 2787: 2768: 2767: 2739: 2729: 2707: 2694: 2693: 2667: 2666: 2643: 2642: 2623: 2622: 2601: 2596: 2595: 2499: 2498: 2471: 2470: 2449: 2444: 2443: 2424: 2423: 2404: 2403: 2402:functions from 2359: 2358: 2347:homotopy theory 2339:function spaces 2335: 2333:Function spaces 2305: 2300: 2299: 2268: 2257: 2256: 2225: 2224: 2205: 2204: 2172: 2162: 2140: 2135: 2134: 2112: 2111: 2092: 2091: 2072: 2071: 2050: 2040: 2032: 2031: 2012: 2011: 1986: 1985: 1958: 1953: 1952: 1929: 1928: 1909: 1908: 1883: 1878: 1877: 1876:, the notation 1870: 1843: 1842: 1795: 1794: 1772: 1771: 1752: 1751: 1732: 1731: 1712: 1711: 1650: 1649: 1621: 1620: 1601: 1600: 1581: 1580: 1533: 1532: 1479: 1478: 1453: 1452: 1433: 1432: 1413: 1412: 1393: 1392: 1369: 1368: 1349: 1348: 1319: 1318: 1287: 1286: 1267: 1266: 1247: 1246: 1227: 1226: 1197: 1196: 1193: 1154: 1135:lambda calculus 1091: 1067: 1066: 1047: 1046: 1027: 1026: 1007: 1006: 987: 982: 981: 962: 961: 942: 941: 915:, developed by 798: 797: 773: 768: 767: 748: 747: 728: 727: 704: 703: 609: 608: 585: 584: 544: 543: 522: 517: 516: 497: 496: 468: 467: 446: 441: 440: 400: 399: 380: 379: 355: 350: 349: 330: 329: 310: 309: 286: 285: 259: 254: 253: 231: 230: 211: 210: 174: 169: 168: 146: 145: 123: 122: 103: 102: 59: 58: 32: 17: 12: 11: 5: 7892: 7890: 7882: 7881: 7876: 7871: 7861: 7860: 7854: 7853: 7851: 7850: 7845: 7839: 7837: 7833: 7832: 7830: 7829: 7824: 7818: 7816: 7812: 7811: 7809: 7808: 7803: 7798: 7793: 7788: 7783: 7778: 7773: 7768: 7766:John Vlissides 7763: 7758: 7753: 7747: 7745: 7741: 7740: 7738: 7737: 7730: 7722: 7720: 7716: 7715: 7713: 7712: 7707: 7702: 7697: 7692: 7687: 7682: 7677: 7672: 7667: 7662: 7657: 7652: 7647: 7641: 7639: 7633: 7632: 7630: 7629: 7624: 7619: 7614: 7609: 7604: 7599: 7594: 7589: 7584: 7579: 7574: 7566: 7561: 7556: 7555: 7554: 7549: 7539: 7534: 7528: 7526: 7518: 7517: 7515: 7514: 7509: 7504: 7499: 7494: 7489: 7484: 7479: 7474: 7469: 7464: 7459: 7454: 7449: 7444: 7439: 7434: 7428: 7426: 7418: 7417: 7414: 7413: 7411: 7410: 7405: 7400: 7395: 7390: 7385: 7380: 7375: 7370: 7365: 7360: 7354: 7352: 7346: 7345: 7343: 7342: 7337: 7332: 7327: 7322: 7317: 7312: 7306: 7304: 7298: 7297: 7295: 7294: 7289: 7284: 7282:Factory method 7279: 7274: 7268: 7266: 7257: 7249: 7248: 7243: 7241: 7240: 7233: 7226: 7218: 7209: 7208: 7206: 7205: 7166: 7164:= discontinued 7157: 7154: 7153: 7146: 7144: 7141: 7140: 7138: 7137: 7131: 7125: 7116: 7114: 7108: 7107: 7105: 7104: 7099: 7094: 7088: 7082: 7067: 7066: 7061: 7059: 7058: 7051: 7044: 7036: 7029: 7028:External links 7026: 7023: 7022: 7003: 6970: 6963: 6941: 6934: 6916: 6901: 6876: 6858: 6808: 6805:. 28 May 2023. 6790: 6775: 6749: 6718: 6697: 6674: 6655: 6646:Curry, Haskell 6637: 6617: 6596: 6570: 6532: 6525: 6502: 6456: 6415: 6349: 6301: 6294: 6268: 6253:Frege, Gottlob 6241: 6219: 6175: 6148: 6123: 6122: 6120: 6117: 6116: 6115: 6110: 6085: 6080: 6075: 6068: 6065: 6049: 6046: 6043: 6040: 6037: 6034: 6031: 6028: 6025: 6022: 6019: 6016: 6013: 5993: 5990: 5987: 5984: 5981: 5978: 5958: 5955: 5952: 5949: 5946: 5943: 5917: 5890: 5887: 5884: 5881: 5878: 5875: 5870: 5860: 5855: 5851: 5847: 5844: 5819: 5816: 5813: 5810: 5807: 5804: 5801: 5798: 5795: 5792: 5789: 5786: 5778: 5775: 5772: 5769: 5766: 5763: 5760: 5757: 5752: 5748: 5744: 5741: 5733: 5708: 5705: 5702: 5682: 5679: 5676: 5673: 5670: 5667: 5664: 5661: 5658: 5655: 5652: 5574: 5571: 5568: 5565: 5562: 5553: 5532: 5529: 5526: 5523: 5520: 5517: 5514: 5511: 5508: 5505: 5502: 5477: 5450: 5447: 5444: 5435: 5414: 5411: 5408: 5405: 5402: 5399: 5396: 5393: 5390: 5381: 5360: 5357: 5354: 5351: 5348: 5345: 5342: 5339: 5319: 5316: 5313: 5310: 5307: 5304: 5301: 5298: 5295: 5292: 5289: 5286: 5283: 5280: 5277: 5252: 5249: 5246: 5243: 5240: 5237: 5234: 5231: 5228: 5225: 5222: 5199:Main article: 5196: 5193: 5137:tensor product 5080:) is just the 5026: 5022: 5001: 4998: 4995: 4971: 4968: 4965: 4950: 4949: 4938: 4935: 4932: 4929: 4926: 4923: 4920: 4917: 4913: 4910: 4907: 4903: 4900: 4897: 4894: 4891: 4888: 4885: 4882: 4878: 4875: 4872: 4844: 4825:tensor product 4803: 4799: 4795: 4792: 4789: 4786: 4766: 4763: 4760: 4757: 4754: 4751: 4748: 4745: 4742: 4732:binary product 4696: 4693: 4676: 4673: 4670: 4667: 4643: 4640: 4637: 4608: 4604: 4565: 4562: 4559: 4556: 4553: 4550: 4547: 4544: 4541: 4538: 4535: 4532: 4529: 4526: 4523: 4520: 4517: 4514: 4511: 4495: 4492: 4436: 4412: 4409: 4406: 4378: 4354: 4334: 4314: 4311: 4308: 4305: 4302: 4282: 4279: 4273:that supports 4264: 4263: 4251: 4247: 4243: 4240: 4237: 4229: 4226: 4223: 4219: 4216: 4212: 4209: 4206: 4198: 4195: 4172: 4169: 4166: 4163: 4160: 4157: 4140:. Conversely, 4129: 4126: 4123: 4120: 4117: 4097: 4094: 4091: 4088: 4085: 4082: 4079: 4064: 4063: 4052: 4049: 4046: 4043: 4040: 4037: 4034: 4031: 4028: 4025: 4022: 4019: 4016: 4013: 4010: 4007: 4004: 4001: 3998: 3995: 3967: 3964: 3961: 3958: 3955: 3952: 3949: 3929: 3918: 3917: 3906: 3903: 3900: 3897: 3894: 3891: 3888: 3885: 3882: 3879: 3876: 3873: 3870: 3867: 3864: 3861: 3858: 3855: 3852: 3849: 3832:is defined as 3817: 3797: 3773: 3749: 3746: 3743: 3740: 3737: 3734: 3731: 3711: 3708: 3705: 3702: 3699: 3696: 3676: 3675:Lambda calculi 3673: 3634:Scott topology 3591: 3588: 3576:exact sequence 3568:tensor product 3491: 3488: 3468: 3448: 3428: 3408: 3388: 3385: 3357: 3354: 3326: 3323: 3303: 3300: 3297: 3284:is the set of 3273: 3270: 3267: 3264: 3261: 3250: 3249: 3238: 3235: 3232: 3229: 3226: 3223: 3220: 3217: 3214: 3211: 3208: 3205: 3202: 3186:is adjoint to 3171: 3168: 3153: 3149: 3128: 3108: 3086: 3082: 3076: 3072: 3068: 3065: 3060: 3057: 3054: 3050: 3029: 3009: 2985: 2963: 2959: 2932: 2929: 2926: 2923: 2920: 2917: 2914: 2911: 2908: 2905: 2902: 2899: 2896: 2893: 2890: 2887: 2882: 2878: 2874: 2866: 2863: 2842:if and only if 2820: 2816: 2795: 2775: 2760: 2759: 2746: 2742: 2736: 2732: 2728: 2725: 2720: 2717: 2714: 2710: 2706: 2674: 2650: 2630: 2608: 2604: 2592: 2591: 2580: 2577: 2574: 2571: 2568: 2565: 2562: 2554: 2551: 2548: 2540: 2537: 2534: 2531: 2528: 2525: 2522: 2519: 2511: 2456: 2452: 2431: 2411: 2383: 2380: 2377: 2374: 2371: 2334: 2331: 2325:is called the 2312: 2308: 2275: 2271: 2267: 2264: 2244: 2241: 2238: 2235: 2232: 2223:, the functor 2212: 2193: 2192: 2179: 2175: 2169: 2165: 2161: 2158: 2153: 2150: 2147: 2143: 2130:. In symbols: 2119: 2099: 2079: 2057: 2053: 2047: 2043: 2039: 2030:, and the set 2019: 1999: 1996: 1993: 1971: 1968: 1965: 1961: 1936: 1916: 1890: 1886: 1869: 1866: 1853: 1850: 1834: 1833: 1822: 1819: 1816: 1813: 1810: 1807: 1779: 1759: 1739: 1719: 1708: 1707: 1696: 1693: 1690: 1687: 1684: 1681: 1678: 1675: 1672: 1669: 1666: 1663: 1660: 1657: 1634: 1631: 1628: 1608: 1588: 1577: 1576: 1564: 1561: 1558: 1555: 1552: 1549: 1546: 1543: 1540: 1523: 1522: 1510: 1507: 1504: 1501: 1498: 1495: 1492: 1489: 1486: 1460: 1440: 1420: 1400: 1376: 1356: 1332: 1329: 1326: 1306: 1303: 1300: 1297: 1294: 1274: 1254: 1234: 1210: 1207: 1204: 1192: 1189: 1153: 1150: 1090: 1087: 1074: 1054: 1034: 1014: 993: 990: 969: 949: 872: 869: 866: 863: 860: 857: 854: 851: 848: 845: 842: 839: 836: 833: 830: 827: 824: 821: 818: 815: 812: 785: 780: 776: 755: 735: 683: 680: 677: 674: 671: 668: 665: 662: 659: 656: 653: 650: 647: 644: 641: 638: 635: 632: 629: 626: 623: 572: 569: 566: 563: 560: 557: 554: 551: 529: 525: 504: 484: 481: 478: 475: 453: 449: 428: 425: 422: 419: 416: 413: 410: 407: 387: 367: 362: 358: 337: 317: 271: 266: 262: 241: 238: 218: 198: 195: 192: 189: 186: 181: 177: 156: 153: 133: 130: 110: 90: 87: 84: 81: 78: 75: 72: 69: 66: 15: 13: 10: 9: 6: 4: 3: 2: 7891: 7880: 7877: 7875: 7872: 7870: 7867: 7866: 7864: 7849: 7846: 7844: 7841: 7840: 7838: 7834: 7828: 7825: 7823: 7820: 7819: 7817: 7813: 7807: 7804: 7802: 7799: 7797: 7794: 7792: 7791:Robert Martin 7789: 7787: 7786:Martin Fowler 7784: 7782: 7779: 7777: 7774: 7772: 7769: 7767: 7764: 7762: 7761:Ralph Johnson 7759: 7757: 7754: 7752: 7749: 7748: 7746: 7742: 7736: 7735: 7731: 7729: 7728: 7724: 7723: 7721: 7717: 7711: 7708: 7706: 7703: 7701: 7698: 7696: 7693: 7691: 7688: 7686: 7683: 7681: 7678: 7676: 7673: 7671: 7668: 7666: 7663: 7661: 7658: 7656: 7653: 7651: 7648: 7646: 7643: 7642: 7640: 7634: 7628: 7625: 7623: 7620: 7618: 7615: 7613: 7610: 7608: 7605: 7603: 7600: 7598: 7597:Active record 7595: 7593: 7590: 7588: 7587:Naked objects 7585: 7583: 7580: 7578: 7577:Specification 7575: 7573: 7571: 7567: 7565: 7562: 7560: 7557: 7553: 7550: 7548: 7545: 7544: 7543: 7540: 7538: 7535: 7533: 7530: 7529: 7527: 7525: 7522:Architectural 7519: 7513: 7510: 7508: 7505: 7503: 7500: 7498: 7495: 7493: 7490: 7488: 7485: 7483: 7480: 7478: 7475: 7473: 7470: 7468: 7465: 7463: 7460: 7458: 7455: 7453: 7450: 7448: 7445: 7443: 7440: 7438: 7435: 7433: 7432:Active object 7430: 7429: 7427: 7425: 7419: 7409: 7406: 7404: 7401: 7399: 7396: 7394: 7391: 7389: 7386: 7384: 7381: 7379: 7376: 7374: 7371: 7369: 7366: 7364: 7361: 7359: 7356: 7355: 7353: 7351: 7347: 7341: 7338: 7336: 7333: 7331: 7328: 7326: 7323: 7321: 7318: 7316: 7313: 7311: 7308: 7307: 7305: 7303: 7299: 7293: 7290: 7288: 7285: 7283: 7280: 7278: 7275: 7273: 7270: 7269: 7267: 7265: 7261: 7258: 7256: 7250: 7246: 7239: 7234: 7232: 7227: 7225: 7220: 7219: 7216: 7204: 7203: 7194: 7193: 7184: 7183: 7173: 7172: 7167: 7165: 7162: 7159: 7158: 7155: 7150: 7135: 7132: 7129: 7126: 7123: 7122: 7118: 7117: 7115: 7113: 7109: 7103: 7100: 7098: 7095: 7093: 7090: 7089: 7086: 7083: 7081: 7076: 7072: 7068: 7064: 7063:Haskell Curry 7057: 7052: 7050: 7045: 7043: 7038: 7037: 7034: 7027: 7018: 7014: 7007: 7004: 6999: 6995: 6990: 6985: 6981: 6974: 6971: 6966: 6960: 6956: 6952: 6945: 6942: 6937: 6931: 6927: 6920: 6917: 6912: 6908: 6904: 6898: 6894: 6893: 6885: 6883: 6881: 6877: 6872: 6868: 6862: 6859: 6854: 6850: 6846: 6842: 6838: 6834: 6830: 6826: 6819: 6812: 6809: 6804: 6800: 6794: 6791: 6786: 6782: 6778: 6776:0-226-51183-9 6772: 6765: 6764: 6756: 6754: 6750: 6737: 6733: 6729: 6722: 6719: 6714: 6708: 6700: 6698:0-631-19712-5 6694: 6687: 6686: 6678: 6675: 6670: 6666: 6659: 6656: 6651: 6647: 6641: 6638: 6630: 6629: 6621: 6618: 6613: 6611: 6606: 6600: 6597: 6593: 6589: 6585: 6581: 6577: 6573: 6571:9780444853455 6567: 6563: 6559: 6555: 6551: 6547: 6541: 6539: 6537: 6533: 6528: 6526:0-201-65697-3 6522: 6515: 6514: 6506: 6503: 6498: 6494: 6490: 6486: 6482: 6478: 6472: 6467: 6463: 6459: 6457:9781450374927 6453: 6449: 6445: 6441: 6440: 6435: 6431: 6424: 6422: 6420: 6416: 6412: 6408: 6404: 6400: 6396: 6392: 6388: 6383: 6378: 6374: 6370: 6366: 6362: 6356: 6354: 6350: 6345: 6341: 6337: 6333: 6329: 6325: 6324: 6315: 6311: 6305: 6302: 6297: 6295:9780674324497 6291: 6287: 6283: 6277: 6275: 6273: 6269: 6264: 6263: 6258: 6254: 6248: 6246: 6242: 6234: 6230: 6226: 6222: 6216: 6212: 6208: 6203: 6198: 6191: 6190: 6182: 6180: 6176: 6171: 6167: 6163: 6157: 6155: 6153: 6149: 6144: 6140: 6133: 6131: 6129: 6125: 6118: 6114: 6111: 6109: 6107: 6086: 6084: 6081: 6079: 6076: 6074: 6071: 6070: 6066: 6064: 6061: 6044: 6041: 6038: 6032: 6029: 6023: 6020: 6017: 6011: 5988: 5985: 5982: 5976: 5969:, a function 5953: 5950: 5947: 5941: 5931: 5915: 5885: 5876: 5868: 5858: 5853: 5845: 5814: 5805: 5796: 5787: 5776: 5770: 5761: 5750: 5742: 5706: 5703: 5700: 5680: 5671: 5668: 5665: 5662: 5659: 5653: 5650: 5641: 5633: 5631: 5627: 5623: 5619: 5615: 5611: 5607: 5603: 5599: 5595: 5591: 5586: 5569: 5566: 5563: 5551: 5530: 5521: 5518: 5515: 5509: 5503: 5475: 5467: 5464:In contrast, 5462: 5445: 5433: 5409: 5400: 5391: 5379: 5355: 5352: 5349: 5346: 5343: 5337: 5311: 5305: 5296: 5287: 5284: 5278: 5250: 5241: 5238: 5235: 5232: 5229: 5223: 5220: 5211: 5209: 5202: 5194: 5192: 5190: 5186: 5182: 5178: 5177:string theory 5174: 5170: 5166: 5162: 5158: 5154: 5150: 5146: 5145:quantum logic 5142: 5138: 5134: 5130: 5129:vector spaces 5126: 5125:Hilbert space 5122: 5117: 5115: 5111: 5107: 5103: 5099: 5095: 5091: 5087: 5083: 5079: 5075: 5071: 5067: 5062: 5060: 5056: 5051: 5049: 5045: 5040: 5024: 5020: 4999: 4993: 4985: 4969: 4963: 4955: 4936: 4930: 4924: 4921: 4918: 4901: 4895: 4892: 4889: 4886: 4883: 4862: 4861: 4860: 4858: 4842: 4834: 4830: 4826: 4822: 4817: 4801: 4797: 4790: 4787: 4784: 4764: 4755: 4752: 4749: 4743: 4740: 4733: 4729: 4725: 4722: 4718: 4714: 4710: 4706: 4702: 4694: 4692: 4690: 4674: 4671: 4668: 4657: 4641: 4635: 4628: 4624: 4606: 4602: 4594: 4589: 4587: 4583: 4579: 4557: 4551: 4542: 4530: 4521: 4518: 4515: 4501: 4493: 4491: 4489: 4484: 4480: 4476: 4472: 4467: 4465: 4461: 4457: 4453: 4448: 4434: 4426: 4410: 4407: 4404: 4396: 4395:function type 4392: 4368: 4352: 4332: 4312: 4306: 4303: 4300: 4292: 4288: 4280: 4278: 4276: 4272: 4267: 4249: 4245: 4238: 4227: 4221: 4214: 4207: 4186: 4185: 4184: 4167: 4164: 4161: 4155: 4147: 4143: 4127: 4121: 4115: 4092: 4086: 4077: 4069: 4044: 4038: 4029: 4017: 4008: 4005: 4002: 3993: 3981: 3980: 3979: 3965: 3956: 3953: 3950: 3927: 3895: 3892: 3889: 3883: 3877: 3874: 3871: 3865: 3862: 3859: 3856: 3850: 3835: 3834: 3833: 3831: 3815: 3795: 3787: 3771: 3763: 3747: 3738: 3735: 3732: 3706: 3703: 3700: 3694: 3686: 3682: 3674: 3672: 3670: 3666: 3661: 3659: 3656:, and is not 3655: 3651: 3647: 3643: 3642:domain theory 3639: 3635: 3631: 3605: 3601: 3597: 3590:Domain theory 3589: 3587: 3585: 3581: 3577: 3573: 3569: 3565: 3561: 3557: 3552: 3550: 3546: 3542: 3538: 3534: 3529: 3527: 3489: 3466: 3446: 3426: 3406: 3386: 3375: 3371: 3355: 3344: 3340: 3324: 3301: 3295: 3287: 3268: 3265: 3262: 3233: 3227: 3224: 3218: 3212: 3209: 3206: 3193: 3192: 3191: 3189: 3185: 3181: 3177: 3169: 3167: 3151: 3147: 3126: 3106: 3084: 3074: 3070: 3063: 3058: 3055: 3052: 3048: 3027: 3007: 2999: 2983: 2961: 2957: 2947: 2927: 2921: 2912: 2909: 2906: 2894: 2888: 2885: 2880: 2876: 2872: 2853: 2851: 2847: 2843: 2838: 2836: 2818: 2814: 2793: 2773: 2765: 2764:homeomorphism 2744: 2734: 2730: 2718: 2715: 2712: 2708: 2704: 2692: 2691: 2690: 2688: 2672: 2664: 2661:is given the 2648: 2628: 2606: 2602: 2578: 2569: 2566: 2563: 2552: 2549: 2532: 2529: 2526: 2523: 2520: 2509: 2497: 2496: 2495: 2494: 2454: 2450: 2429: 2409: 2401: 2397: 2378: 2375: 2372: 2357:. One writes 2356: 2352: 2348: 2344: 2341:, such as in 2340: 2332: 2330: 2328: 2310: 2306: 2298: 2294: 2289: 2273: 2269: 2262: 2242: 2239: 2236: 2230: 2210: 2202: 2198: 2177: 2167: 2163: 2156: 2151: 2148: 2145: 2141: 2133: 2132: 2131: 2117: 2097: 2077: 2055: 2045: 2041: 2017: 1997: 1994: 1991: 1969: 1966: 1963: 1959: 1950: 1934: 1914: 1906: 1888: 1884: 1875: 1867: 1865: 1864: 1851: 1848: 1838: 1820: 1817: 1814: 1808: 1793: 1792: 1791: 1777: 1757: 1737: 1717: 1691: 1688: 1685: 1679: 1676: 1670: 1661: 1655: 1648: 1647: 1646: 1632: 1626: 1606: 1586: 1559: 1553: 1544: 1541: 1538: 1531: 1530: 1529: 1527: 1508: 1499: 1496: 1493: 1487: 1484: 1477: 1476: 1475: 1472: 1458: 1438: 1418: 1398: 1390: 1374: 1354: 1346: 1345:ordered pairs 1330: 1327: 1324: 1304: 1298: 1295: 1292: 1272: 1252: 1232: 1224: 1208: 1202: 1190: 1188: 1186: 1182: 1178: 1174: 1169: 1167: 1163: 1159: 1158:Haskell Curry 1151: 1149: 1147: 1143: 1138: 1136: 1132: 1128: 1124: 1119: 1117: 1113: 1109: 1104: 1100: 1096: 1088: 1086: 1072: 1052: 1032: 1012: 991: 988: 967: 947: 940: 937:. It takes a 936: 932: 928: 924: 922: 921:Haskell Curry 918: 914: 913:Gottlob Frege 909: 907: 903: 899: 895: 892: 887: 884: 870: 864: 858: 846: 843: 837: 828: 825: 822: 810: 783: 778: 774: 753: 733: 701: 696: 681: 672: 666: 657: 645: 636: 633: 630: 621: 570: 564: 558: 549: 527: 523: 502: 482: 479: 473: 451: 447: 426: 423: 414: 411: 408: 385: 365: 360: 356: 335: 315: 282: 269: 264: 260: 239: 236: 216: 196: 193: 187: 184: 179: 175: 154: 151: 131: 128: 121:and one from 108: 88: 79: 76: 73: 67: 64: 55: 53: 49: 45: 41: 37: 30: 26: 22: 7843:Anti-pattern 7806:Linda Rising 7732: 7725: 7670:Lazy loading 7602:Identity map 7569: 7253:Gang of Four 7200: 7190: 7180: 7168: 7163: 7160: 7119: 7096: 7016: 7006: 6979: 6973: 6954: 6944: 6925: 6919: 6891: 6870: 6861: 6828: 6824: 6811: 6802: 6793: 6762: 6740:. Retrieved 6731: 6721: 6684: 6677: 6668: 6658: 6649: 6640: 6627: 6620: 6608: 6599: 6591: 6553: 6549: 6512: 6505: 6488: 6484: 6469: 6438: 6410: 6372: 6368: 6327: 6321: 6304: 6285: 6282:Quine, W. V. 6261: 6233:the original 6188: 6165: 6142: 6088: 6062: 5932: 5642: 5634: 5629: 5625: 5621: 5617: 5613: 5609: 5605: 5601: 5597: 5593: 5587: 5465: 5463: 5212: 5204: 5185:linear logic 5143:, a form of 5141:linear logic 5118: 5086:ordered pair 5063: 5052: 5041: 4953: 4951: 4829:internal Hom 4818: 4726:between the 4698: 4590: 4586:product type 4497: 4468: 4449: 4427:constructor 4425:product type 4284: 4268: 4265: 4065: 3919: 3829: 3785: 3761: 3678: 3662: 3596:order theory 3593: 3553: 3547:and coexact 3533:mapping cone 3530: 3373: 3342: 3251: 3173: 3000:, i.e. when 2948: 2854: 2839: 2761: 2593: 2399: 2336: 2290: 2194: 1871: 1836: 1835: 1709: 1578: 1525: 1524: 1473: 1221:denotes all 1194: 1173:David Turner 1170: 1155: 1139: 1120: 1092: 926: 925: 910: 888: 885: 697: 283: 56: 43: 33: 7815:Communities 7796:Jim Coplien 7771:Grady Booch 7756:Erich Gamma 7700:Type tunnel 7685:Object pool 7680:Null object 7675:Mock object 7537:Interceptor 7507:Thread pool 7422:Concurrency 7368:Interpreter 7075:mathematics 5628:) = 1/ 5149:type system 5102:type theory 4855:there is a 4724:isomorphism 4578:exportation 4291:type system 4287:type theory 4281:Type theory 3584:Tor functor 3580:Ext functor 3564:Hom functor 3537:cofibration 2396:Hom functor 1927:to the set 1343:denote the 439:Meanwhile, 36:mathematics 7863:Categories 7710:Delegation 7645:Blackboard 7350:Behavioral 7302:Structural 7264:Creational 6471:accurate.) 6119:References 5830:or simply 5169:cobordisms 4713:adjunction 4498:Under the 4477:, have an 4148:, so that 3669:refactored 3545:long exact 3370:loop space 3339:suspension 3184:loop space 3040:, so that 1874:set theory 1868:Set theory 1837:Uncurrying 1191:Definition 1089:Motivation 927:Uncurrying 7776:Kent Beck 7502:Semaphore 7492:Scheduler 7335:Flyweight 7325:Decorator 7320:Composite 7292:Singleton 7287:Prototype 7071:Namesakes 6853:0030-8730 6845:1945-5844 6707:cite book 6588:117179133 6580:0049-237X 6399:1573-0557 6377:CiteSeerX 6375:: 11–49. 6344:118507515 6229:115169297 6202:0903.0340 5704:∈ 5678:→ 5669:× 5663:× 5654:: 5528:→ 5519:× 5510:: 5309:→ 5300:→ 5291:→ 5285:: 5248:→ 5239:× 5233:× 5224:: 5175:, and to 5135:) is the 5123:(such as 5112:and many 4997:⇒ 4967:⇒ 4928:⇒ 4902:≅ 4887:⊗ 4794:→ 4788:: 4762:→ 4753:× 4744:: 4728:morphisms 4672:∨ 4666:¬ 4639:→ 4555:→ 4546:→ 4537:⇔ 4528:→ 4519:∧ 4435:× 4408:× 4377:→ 4310:→ 4304:: 4125:→ 4119:→ 4090:→ 4081:→ 4042:→ 4033:→ 4024:→ 4015:→ 4006:× 3963:→ 3954:× 3928:λ 3872:λ 3860:λ 3745:→ 3736:× 3541:fibration 3487:Ω 3384:Σ 3353:Ω 3322:Σ 3299:→ 3231:Ω 3219:≊ 3204:Σ 3064:≅ 3056:× 2919:↦ 2892:→ 2886:× 2724:→ 2716:× 2539:→ 2524:× 2493:bijection 2266:↦ 2240:× 2234:↦ 2157:≅ 2149:× 1995:× 1967:× 1841:function 1630:→ 1579:That is, 1557:→ 1548:→ 1542:: 1506:→ 1497:× 1488:: 1328:× 1302:→ 1296:: 1223:functions 1206:→ 1099:functions 894:languages 862:→ 853:→ 844:× 835:→ 826:× 670:→ 661:→ 652:→ 643:→ 634:× 562:→ 553:→ 477:→ 421:→ 412:× 191:→ 86:→ 77:× 52:arguments 29:Currycomb 7836:See also 7638:patterns 7524:patterns 7477:Proactor 7424:patterns 7398:Strategy 7388:Observer 7378:Mediator 7373:Iterator 7255:patterns 7097:Currying 6911:17383909 6785:41266205 6736:Archived 6479:(1998). 6407:14124601 6255:(1893). 6170:Archived 6067:See also 5638:plus_one 5590:argument 5127:and the 5048:monoidal 4827:and the 4275:closures 3600:lattices 3582:and the 3566:and the 3288:of maps 2998:homotopy 2353:between 1770:of type 1730:of type 1526:currying 1431:. Here, 1146:closures 992:′ 939:function 48:function 44:currying 7690:Servant 7622:Model 2 7482:Reactor 7472:Monitor 7437:Balking 7408:Visitor 7383:Memento 7363:Command 7310:Adapter 7277:Builder 7161:Italics 7134:Haskell 6742:3 March 6108:theorem 5839:partial 5736:partial 5604:, then 5556:partial 5497:partial 5438:curried 5384:curried 5151:is the 5100:in the 5092:is the 5066:product 4730:from a 4721:natural 4481:, with 4460:Haskell 3524:is the 3502:. Then 3368:is the 3337:is the 2689:, then 2491:is the 2291:In the 1152:History 1131:Haskell 929:is the 25:Currier 7744:People 7627:Broker 7330:Facade 7315:Bridge 7017:Slides 6961:  6932:  6909:  6899:  6851:  6843:  6783:  6773:  6695:  6586:  6578:  6568:  6523:  6466:163294 6464:  6454:  6405:  6397:  6379:  6342:  6292:  6257:"§ 36" 6227:  6217:  6103:  6094:  5901:where 5183:, and 5179:. The 5110:Scheme 5044:closed 4952:Here, 4707:of an 4582:tuples 4580:), as 4462:, and 3920:where 3574:to an 3345:, and 3314:, and 3252:where 2297:object 2295:, the 1317:. Let 1110:or in 7719:Books 7636:Other 7572:-tier 7393:State 7340:Proxy 7128:Curry 7121:Brook 6984:arXiv 6841:eISSN 6821:(PDF) 6767:(PDF) 6689:(PDF) 6632:(PDF) 6584:S2CID 6517:(PDF) 6462:S2CID 6403:S2CID 6340:S2CID 6318:(PDF) 6236:(PDF) 6225:S2CID 6197:arXiv 6193:(PDF) 5911:curry 5864:curry 5781:curry 5728:curry 5719:then 5272:curry 5208:arity 5167:, to 5098:types 4494:Logic 4389:is a 4367:types 4232:curry 4201:curry 3990:curry 3844:curry 3658:sober 3654:finer 3628:is a 3615:curry 3511:curry 3479:into 2762:is a 2701:curry 2506:curry 2478:curry 2394:(the 1849:apply 1802:curry 1265:. If 1225:from 1166:Frege 1121:Some 1103:Frege 806:apply 712:apply 617:curry 593:curry 294:curry 21:Curry 7695:Twin 7552:MVVM 7467:Lock 7462:Join 7169:° = 6959:ISBN 6930:ISBN 6907:OCLC 6897:ISBN 6871:nLab 6849:ISSN 6803:nLab 6781:OCLC 6771:ISBN 6744:2022 6713:link 6693:ISBN 6612:Wiki 6576:ISSN 6566:ISBN 6521:ISBN 6452:ISBN 6395:ISSN 6290:ISBN 6215:ISBN 5693:and 5106:LISP 4831:are 4591:The 4456:Caml 4365:are 4345:and 3572:lift 3539:and 2869:eval 2850:eval 2833:are 2806:and 1750:and 1710:for 1451:and 1411:and 1367:and 1129:and 1025:and 931:dual 746:and 38:and 7564:ECS 7559:ADR 7547:MVP 7542:MVC 6994:doi 6833:doi 6558:doi 6554:101 6493:doi 6444:doi 6387:doi 6332:doi 6207:doi 5622:inv 5618:inv 5614:div 5606:div 5594:div 5171:in 5163:to 5131:of 5104:of 5076:or 4954:Hom 4715:in 4285:In 3679:In 3602:of 3594:In 3554:In 3372:of 3341:of 3174:In 3119:to 2685:is 2641:to 2557:Hom 2543:Hom 2514:Hom 2422:to 2400:all 2366:Hom 2345:or 2110:to 2010:to 1905:set 1872:In 1391:of 1245:to 515:to 348:to 229:in 34:In 7865:: 7073:: 7015:. 6992:. 6953:. 6905:. 6879:^ 6869:. 6847:. 6839:. 6829:88 6827:. 6823:. 6801:. 6779:. 6752:^ 6734:. 6730:. 6709:}} 6705:{{ 6667:. 6607:. 6590:. 6582:. 6574:. 6564:. 6535:^ 6489:11 6487:. 6483:. 6468:. 6460:. 6450:. 6418:^ 6409:. 6401:. 6393:. 6385:. 6373:13 6371:. 6367:. 6352:^ 6338:. 6328:92 6326:. 6320:. 6271:^ 6259:. 6244:^ 6223:. 6213:. 6205:. 6178:^ 6164:. 6151:^ 6141:. 6127:^ 5632:. 5116:. 5108:, 5072:, 5061:. 5039:. 4859:: 4816:. 4691:. 4466:. 4464:F# 4458:, 4452:ML 4447:. 3784:, 3660:. 3606:, 3586:. 3551:. 3166:. 2786:, 2329:. 2288:. 1168:. 1127:ML 1118:. 923:. 42:, 7570:n 7237:e 7230:t 7223:v 7136:° 7130:° 7124:° 7077:, 7055:e 7048:t 7041:v 7019:. 7000:. 6996:: 6986:: 6967:. 6938:. 6913:. 6855:. 6835:: 6787:. 6746:. 6715:) 6701:. 6671:. 6560:: 6529:. 6495:: 6446:: 6389:: 6346:. 6334:: 6298:. 6209:: 6199:: 6145:. 6100:n 6098:m 6091:S 6048:) 6045:y 6042:, 6039:x 6036:( 6033:f 6030:= 6027:) 6024:x 6021:, 6018:y 6015:( 6012:g 5992:) 5989:x 5986:, 5983:y 5980:( 5977:g 5957:) 5954:y 5951:, 5948:x 5945:( 5942:f 5916:1 5889:) 5886:a 5883:( 5880:) 5877:f 5874:( 5869:1 5859:= 5854:a 5850:) 5846:f 5843:( 5818:) 5815:z 5812:( 5809:) 5806:y 5803:( 5800:) 5797:a 5794:( 5791:) 5788:f 5785:( 5777:= 5774:) 5771:z 5768:( 5765:) 5762:y 5759:( 5756:) 5751:a 5747:) 5743:f 5740:( 5732:( 5707:X 5701:a 5681:N 5675:) 5672:Z 5666:Y 5660:X 5657:( 5651:f 5630:y 5626:y 5624:( 5610:x 5602:y 5600:/ 5598:x 5573:) 5570:3 5567:, 5564:2 5561:( 5552:f 5531:N 5525:) 5522:Z 5516:Y 5513:( 5507:) 5504:f 5501:( 5476:f 5449:) 5446:1 5443:( 5434:f 5413:) 5410:3 5407:( 5404:) 5401:2 5398:( 5395:) 5392:1 5389:( 5380:f 5359:) 5356:3 5353:, 5350:2 5347:, 5344:1 5341:( 5338:f 5318:) 5315:) 5312:N 5306:Z 5303:( 5297:Y 5294:( 5288:X 5282:) 5279:f 5276:( 5251:N 5245:) 5242:Z 5236:Y 5230:X 5227:( 5221:f 5025:B 5021:C 5000:C 4994:B 4970:C 4964:B 4937:. 4934:) 4931:C 4925:B 4922:, 4919:A 4916:( 4912:m 4909:o 4906:H 4899:) 4896:C 4893:, 4890:B 4884:A 4881:( 4877:m 4874:o 4871:H 4843:B 4802:Y 4798:Z 4791:X 4785:g 4765:Z 4759:) 4756:Y 4750:X 4747:( 4741:f 4675:Q 4669:P 4642:Q 4636:P 4607:P 4603:Q 4584:( 4564:) 4561:) 4558:C 4552:B 4549:( 4543:A 4540:( 4534:) 4531:C 4525:) 4522:B 4516:A 4513:( 4510:( 4411:Y 4405:X 4353:Y 4333:X 4313:Y 4307:X 4301:f 4262:. 4250:y 4246:x 4242:) 4239:f 4236:( 4228:= 4225:) 4222:y 4218:) 4215:x 4211:) 4208:f 4205:( 4197:( 4194:( 4171:) 4168:y 4165:, 4162:x 4159:( 4156:f 4128:Z 4122:Y 4116:X 4096:) 4093:Z 4087:Y 4084:( 4078:X 4051:) 4048:) 4045:Z 4039:Y 4036:( 4030:X 4027:( 4021:) 4018:Z 4012:) 4009:Y 4003:X 4000:( 3997:( 3994:: 3966:Z 3960:) 3957:Y 3951:X 3948:( 3905:) 3902:) 3899:) 3896:y 3893:, 3890:x 3887:( 3884:f 3881:( 3878:. 3875:y 3869:( 3866:. 3863:x 3857:= 3854:) 3851:f 3848:( 3830:f 3816:Z 3796:Y 3786:y 3772:X 3762:x 3748:Z 3742:) 3739:Y 3733:X 3730:( 3710:) 3707:y 3704:, 3701:x 3698:( 3695:f 3490:Z 3467:X 3447:Z 3427:X 3407:X 3387:X 3374:A 3356:A 3343:A 3325:A 3302:B 3296:A 3272:] 3269:B 3266:, 3263:A 3260:[ 3237:] 3234:Z 3228:, 3225:X 3222:[ 3216:] 3213:Z 3210:, 3207:X 3201:[ 3152:Y 3148:Z 3127:Z 3107:Y 3085:I 3081:) 3075:Y 3071:Z 3067:( 3059:Y 3053:I 3049:Z 3028:I 3008:X 2984:Y 2962:X 2958:Y 2931:) 2928:x 2925:( 2922:f 2916:) 2913:x 2910:, 2907:f 2904:( 2895:Y 2889:X 2881:X 2877:Y 2873:: 2819:X 2815:Y 2794:Y 2774:X 2745:X 2741:) 2735:Y 2731:Z 2727:( 2719:Y 2713:X 2709:Z 2705:: 2673:Y 2649:Y 2629:X 2607:X 2603:Y 2579:, 2576:) 2573:) 2570:Z 2567:, 2564:Y 2561:( 2553:, 2550:X 2547:( 2536:) 2533:Z 2530:, 2527:Y 2521:X 2518:( 2510:: 2455:X 2451:Y 2430:Y 2410:X 2382:) 2379:Y 2376:, 2373:X 2370:( 2311:X 2307:Y 2274:C 2270:A 2263:A 2243:C 2237:B 2231:B 2211:C 2178:B 2174:) 2168:C 2164:A 2160:( 2152:C 2146:B 2142:A 2118:A 2098:C 2078:B 2056:B 2052:) 2046:C 2042:A 2038:( 2018:A 1998:C 1992:B 1970:C 1964:B 1960:A 1935:Y 1915:X 1889:X 1885:Y 1852:. 1821:. 1818:g 1815:= 1812:) 1809:f 1806:( 1778:Y 1758:y 1738:X 1718:x 1695:) 1692:y 1689:, 1686:x 1683:( 1680:f 1677:= 1674:) 1671:y 1668:( 1665:) 1662:x 1659:( 1656:g 1633:Z 1627:Y 1607:X 1587:g 1575:. 1563:) 1560:Z 1554:Y 1551:( 1545:X 1539:g 1521:, 1509:Z 1503:) 1500:Y 1494:X 1491:( 1485:f 1459:Y 1439:X 1419:Y 1399:X 1375:Y 1355:X 1331:Y 1325:X 1305:Y 1299:X 1293:f 1273:f 1253:Y 1233:X 1209:Y 1203:X 1073:g 1053:f 1033:g 1013:f 989:f 968:g 948:f 871:. 868:] 865:Z 859:Y 856:[ 850:) 847:X 841:] 838:Z 832:) 829:Y 823:X 820:( 817:[ 814:( 811:: 784:. 779:x 775:f 754:x 734:f 682:. 679:) 676:] 673:Z 667:Y 664:[ 658:X 655:( 649:] 646:Z 640:) 637:Y 631:X 628:( 625:[ 622:: 571:. 568:] 565:Z 559:Y 556:[ 550:X 528:x 524:f 503:x 483:. 480:Z 474:Y 452:x 448:f 427:. 424:Z 418:) 415:Y 409:X 406:( 386:f 366:. 361:x 357:f 336:x 316:f 270:. 265:x 261:f 240:, 237:X 217:x 197:. 194:Z 188:Y 185:: 180:x 176:f 155:. 152:Z 132:, 129:Y 109:X 89:Z 83:) 80:Y 74:X 71:( 68:: 65:f 31:.

Index

Curry
Currier
Currycomb
mathematics
computer science
function
arguments
partial application
functional programming
languages
theoretical computer science
closed monoidal categories
Curry–Howard correspondence
Gottlob Frege
Moses Schönfinkel
Haskell Curry
dual
defunctionalization
function
analytical techniques
functions
Frege
mathematical analysis
computer programming
closed monoidal categories
programming languages
ML
Haskell
lambda calculus
partial application

Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.

↑