Knowledge

Multiple dispatch

Source 📝

386:, this condition is trivially satisfied, but with multiple dispatch, it is possible for two or more candidates to satisfy a given actual argument list, but neither is more specific than the other (one dynamic argument being the subtype in one case, another being the subtype in the other case). This particularly can happen if two different packages, neither depending on the other, both extend some multi-method with implementations concerning each package's types, and then a third package that includes both (possibly indirectly) then invokes the multi-method using arguments from both packages. 415:" method developed in C++ and other early OO languages (where each class has an array of function pointers corresponding to that class's virtual functions) is nearly as fast as a static method call, requiring O(1) overhead and only one additional memory lookup even in the un-optimized case. However, the vtable method uses the function name and not the argument type as its lookup key, and does not scale to the multiple dispatch case. (It also depends on the object-oriented paradigm of methods being features of classes, not standalone entities independent of any particular datatype). 293:, in which static typing information, such as a term's declared or inferred type (or base type in a language with subtyping) is used to determine which of several possibilities will be used at a given call site, and that determination is made at compile or link time (or some other time before program execution starts) and is thereafter invariant for a given deployment or run of the program. Many languages such as C++ offer robust function overloading but do not offer dynamic multiple dispatch (C++ only permits dynamic single dispatch through use of virtual functions). 8101: 439:, MultiJava, Diesel, and Nice. Their results show that 13–32% of generic functions use the dynamic type of one argument, while 2.7–6.5% of them use the dynamic type of multiple arguments. The remaining 65–93% of generic functions have one concrete method (overrider), and thus are not considered to use the dynamic types of their arguments. Further, the study reports that 2–20% of generic functions had two and 3–6% had three concrete function implementations. The numbers decrease rapidly for functions with more concrete overriders. 710: 372:
the multi-method is invoked with that value as an argument, the multi-method case defined in the package which includes the type should be employed. To put it another way—within a given program, the same multi-method invoked with the same set of arguments should resolve to the same implementation, regardless of the location of the call site, and whether or not a given definition is "in scope" or "visible" at the point of the method call.
382:
behavior is undesirable. Assuming a set of types with a non-circular subtyping relationship, one can define that one implementation of a multi-method is "better" (more specific) if all dynamically-dispatched arguments in the first are subtypes of all dynamically-dispatched arguments specified in the second, and at least one is a strict subtype. With single dispatch and in the absence of
349:; actual terminology for this concept varies between language. Each package may contain multiple type, value, and function definitions, packages are often compiled separately in languages with a compilation step, and a non-cyclical dependency relationship may exist. A complete program is a set of packages, with a 6837:
The syntax for declaring open methods is inspired by a proposal for a native C++ implementation. The library requires that the user registers all the classes used as virtual arguments (and their sub-classes), but does not require any modifications to existing code. Methods are implemented as ordinary
704:
introduced support for dynamic multimethods in version 4 (April 2010) using the 'dynamic' keyword. The following example demonstrates multimethods. Like many other statically-typed languages, C# also supports static method overloading. Microsoft expects that developers will choose static typing over
360:
relates to the ability for code in a depending package to extend behaviors (functions or datatypes) defined in a base package from within an including package, without modifying the source to the base package. Traditional single-dispatch OO languages make it trivial to add new datatypes but not new
327:
There is some run-time cost associated with dynamically dispatching function calls. In some languages, the distinction between overloading and multimethods can be blurred, with the compiler determining whether compile time selection can be applied to a given function call, or whether slower run time
7585:
that he liked the concept of multimethods and considered implementing it in C++ but claims to have been unable to find an efficient sample implementation (comparable to virtual functions) and resolve some possible type ambiguity problems. He then states that although the feature would still be nice
410:
Efficient implementation of single-dispatch, including in programming languages that are separately compiled to object code and linked with a low-level (not-language-aware) linker, including dynamically at program load/start time or even under the direction of the application code, are well known.
400:
Construction of other rules for resolving an ambiguity in one direction or another. Sometimes, such rules might be arbitrary and surprising. In the rules for static overload resolution in C++, for instance, a type which matches exactly is understandably considered a better match than a type which
371:
Conversely, if a datatype is defined in a given package, and a multi-method extension using that type is also defined in the same package, and a value of that type is passed (through a base type reference or into a generic function) into another package with no dependency on that package, and then
6841:
The library uses a combination of techniques (compressed dispatch tables, collision free integer hash table) to implement method calls in constant time, while mitigating memory usage. Dispatching a call to an open method with a single virtual argument takes only 15–30% more time than calling an
336:
There are several known issues with dynamic-dispatch, both single and multiple. While many of these issues are solved for single-dispatch, which has been a standard feature in object-oriented programming languages for decades, these issues become more complicated in the multiple-dispatch case.
224:
Function names are usually selected so as to be descriptive of the function's purpose. It is sometimes desirable to give several functions the same name, often because they perform conceptually similar tasks, but operate on different types of input data. In such cases, the name reference at the
381:
It is generally desirable that for any given invocation of a multi-method, there be at most one "best" candidate among implementation cases of the multi-method, and/or that if there is not, that this be resolved in a predictable and deterministic fashion, including failure. Non-deterministic
4694:
With the C Object System library, C does support dynamic dispatch similar to CLOS. It is fully extensible and does not need any manual handling of the methods. Dynamic message (methods) are dispatched by the dispatcher of COS, which is faster than Objective-C. Here is an example in COS:
192:
where a function or method call is dynamically dispatched based on the derived type of the object on which the method has been called. Multiple dispatch routes the dynamic dispatch to the implementing function or method using the combined characteristics of one or more arguments.
401:
matches through a base type reference or a generic (template) parameter. However, if the only possible matches are either through a base type or a generic parameter, the generic parameter is preferred over the base type, a rule that sometimes produces surprising behavior.
687:
Distinguishing multiple and single dispatch may be made clearer by an example. Imagine a game that has, among its (user-visible) objects, spaceships and asteroids. When two objects collide, the program may need to do different things according to what has just hit what.
2032:
method above is attached to two different classes, not one. Hence, the special syntax for method invocation generally disappears, so that method invocation looks exactly like ordinary function invocation, and methods are grouped not in classes but in
361:
functions; traditional functional languages tend to have the opposite effect, and multiple dispatch, if implemented correctly, allows both. It is desirable for an implementation of multiple dispatch to have the following properties:
320:), selection among alternative functions must occur then, based on the dynamically determined types of function arguments. Functions whose alternative implementations are selected in this manner are referred to most generally as 396:
Ordering the arguments, so e.g. the case with the most specific first argument is selected, and subsequent arguments are not considered for ambiguity resolution unless the first argument is insufficient to resolve the
225:
function call site is not sufficient for identifying the block of code to be executed. Instead, the number and type of the arguments to the function call are also used to select among several function implementations.
446:, where multiple dispatch was a central design concept from the origin of the language: collecting the same statistics as Muschevici on the average number of methods per generic function, it was found that the Julia 2457:, like Perl, uses proven ideas from other languages, and type systems have shown themselves to offer compelling advantages in compiler-side code analysis and powerful user-side semantics via multiple dispatch. 426:
To estimate how often multiple dispatch is used in practice, Muschevici et al. studied programs that use dynamic dispatch. They analyzed nine applications, mostly compilers, written in six different languages:
4376:
C does not have dynamic dispatch, so it must be implemented manually in some form. Often an enum is used to identify the subtype of an object. Dynamic dispatch can be done by looking up this value in a
6838:
inline C++ functions; they can be overloaded and they can be passed by pointer. There is no limit on the number of virtual arguments, and they can be arbitrarily mixed with non-virtual arguments.
9328:
Multiple dispatch – the selection of a function to be invoked based on the dynamic type of two or more arguments – is a solution to several classical problems in object-oriented programming.
393:
Treating any ambiguous calls as an error. This might be caught at compile time (or otherwise before deployment), but might not be detected until runtime and produce a runtime error.
9127: 8801: 248:), one of its arguments is treated specially and used to determine which of the (potentially many) classes of methods of that name is to be applied. In many languages, the 217:. This transfers control temporarily to the called function; when the function's execution has completed, control is typically transferred back to the instruction in the 368:
Inclusion of another package in the program should not change the behavior of a given multi-method call, when the call does not use any datatypes defined in the package.
9107: 267:
In contrast, in languages with multiple dispatch, the selected method is simply the one whose arguments match the number and type of the function call. There is no
465:
is the mean of the square of the number of methods (to better measure the frequency of functions with a large number of methods); and the degree of specialization
3292:
extension. JavaScript and TypeScript do not support multimethods at the syntax level, but it is possible to add multiple dispatch via a library. For example, the
3288:
In languages that do not support multiple dispatch at the language definition or syntactic level, it is often possible to add multiple dispatch using a
2028:
In the presence of multiple dispatch, the traditional idea of methods as being defined in classes and contained in objects becomes less appealing—each
309:, selecting among the alternatives can occur then. The act of creating such alternative functions for compile time selection is usually referred to as 676: 252:
argument is indicated syntactically; for example, a number of programming languages put the special argument before a dot in making a method call:
9536: 365:
It is possible to define different "cases" of a multi-method from within different packages without modifying the source of a base package.
705:
dynamic typing in most scenarios. The 'dynamic' keyword supports interoperability with COM objects and dynamically-typed .NET languages.
450:
uses more than double the amount of overloading than in the other languages analyzed by Muschevici, and more than 10 times in the case of
189: 8573: 671:
The theory of multiple dispatching languages was first developed by Castagna et al., by defining a model for overloaded functions with
353:
which may depend on several other packages, and the whole program consisting of the transitive closure of the dependency relationship.
9397: 8900:
Bezanson, Jeff; Edelman, Alan; Karpinski, Stefan; Shah, Viral B. (7 February 2017). "Julia: A fresh approach to numerical computing".
9194: 8707: 4246:
The PEAK-Rules package provides multiple dispatch with a syntax similar to the above example. It was later replaced by PyProtocols.
9855: 2048:
has built-in multiple dispatch, and it is central to the language design. The Julia version of the example above might look like:
9791: 345:
In most popular programming languages, source code is delivered and deployed in granules of functionality which we will here call
9301:"C Object System: A framework that brings C to the level of other high level programming languages and beyond: CObjectSystem/COS" 7590:
or a type based lookup table as outlined in the C/C++ example above so is a low priority feature for future language revisions.
9850: 282:(CLOS) is an early and well-known example of multiple dispatch. Another notable example of the use of multiple dispatch is the 141: 4253: 9500: 9369: 8989: 7602:
natively supports only single dispatch. However, it is possible to emulate open multimethods as a library function in D. The
9427: 9087: 8100: 2460:
It has both multimethods, and multisubs. Since most operators are subroutines, it also has multiple dispatched operators.
469:
is the average number of type-specialized arguments per method (i.e., the number of arguments that are dispatched on):
178: 9750: 8867: 8811: 8675: 4136: 8522: 182: 8800:
Ranka, Sanjay; Banerjee, Arunava; Biswas, Kanad Kishore; Dua, Sumeet; Mishra, Prabhat; Moona, Rajat (2010-07-26).
8528: 451: 33: 8851:
Proceedings of the 23rd ACM SIGPLAN conference on Object-oriented programming systems languages and applications
229: 8803:
Contemporary Computing: Second International Conference, IC3 2010, Noida, India, August 9–11, 2010. Proceedings
8617: 701: 8979: 8849: 8753: 8725: 8695: 8655: 8533: 3884: 3868: 170: 8703: 8538: 8513: 8493: 8476: 2045: 607: 576: 489: 443: 436: 432: 283: 8735: 8665: 8549: 8093: 2454: 1275: 17: 5182:
natively supports only single dispatch, though adding multi-methods (multiple dispatch) was proposed by
2623:# We add multi candidates to the numeric comparison operators because we are comparing them numerically, 8543: 134: 9543: 9447: 8848:
Muschevici, Radu; Potanin, Alex; Tempero, Ewan; Noble, James (2008). "Multiple dispatch in practice".
8507: 428: 279: 9690: 9567: 9320: 9019: 5186:(and collaborators) in 2007. The methods of working around this limit are analogous: use either the 9250: 9160:
Multiple dispatch in JavaScript/TypeScript with configurable dispatch resolution by Maciej Cąderek.
8645: 8607: 8554: 7599: 9627: 2798:# If we didn't define it we would have gotten a generic one that didn't have constraints. 63: 9587: 9014: 4132:
Functionally, this is very similar to the CLOS example, but the syntax is conventional Python.
2825:# Note that the 'where' constraint uses the `<` operator candidate we added earlier. 1293:
Late binding works the same when using non-static methods or compiling class/methods statically
545: 8659: 3115:"two asteroids collided and combined into one larger asteroid of mass { $ a + $ b }" 127: 9730: 9405: 9357: 9211: 9050:
Bruce, Kim; Cardelli, Luca; Castagna, Giuseppe; Leavens, Gary T.; Pierce, Benjamin (1995).
1279: 383: 310: 290: 162: 54: 49: 9516: 9201:, Multiple dispatch in Python with configurable dispatch resolution by David Mertz, et al. 9146: 2025:
and similarly for the other methods. Explicit testing and "dynamic casting" are not used.
457:
The data from these papers is summarized in the following table, where the dispatch ratio
209:, procedures, subprograms, functions, or methods. The code in the function is executed by 181:(dynamic) type or, in the more general case, some other attribute of more than one of its 8: 9191: 3872: 3289: 2822:# The 'where' constraint technically only applies to $ b not the whole signature. 77: 40: 9361: 8138:/* These methods would need different names in a language without method overloading. */ 9818:. ACM 6th International Conference on Generative Programming and Component Engineering. 9067: 9032: 8927: 8909: 8873: 8780: 8715: 357: 115: 9005:
Castagna, Giuseppe (1995). "Covariance and contravariance: conflict without a cause".
8729: 9496: 9365: 8985: 8863: 8807: 8569: 5183: 2980:# If the ships have unequal mass one of the first two candidates gets called instead. 9667: 9157: 9036: 8931: 8767: 8679: 9063: 9024: 8958: 8919: 8877: 8855: 8578: 4378: 4140: 2034: 447: 418:
Efficient implementation of multiple-dispatch remains an ongoing research problem.
316:
In programming languages that defer data type identification until run time (i.e.,
174: 100: 95: 72: 9051: 8711: 8689: 9488: 9198: 7587: 5187: 2795:# Define a new multi dispatcher, and add some type constraints to the parameters. 2629:# ( If they did coerce we wouldn't necessarily need to add these operators. ) 509: 186: 105: 9771: 9710: 8621: 8597: 8635: 679:
of object-oriented languages and a solution to the problem of binary methods.
9844: 9810: 8757: 8096:, multiple dispatch can be emulated with multiple levels of single dispatch: 6842:
ordinary virtual member function, when a modern optimizing compiler is used.
4256:, multiple dispatch is possible with even simpler syntax. For example, using 1271: 9823: 8859: 4355:"""Behavior when asteroid hits a spaceship.""" 4232:"""Behavior when asteroid hits a spaceship.""" 2819:# No need to repeat the types here since they are the same as the prototype. 9607: 8963: 8946: 4381: 4313:"""Behavior when asteroid hits a asteroid.""" 4187:"""Behavior when asteroid hits a asteroid.""" 4143:
produced a sample implementation of multimethods with a simplified syntax:
672: 317: 306: 9225: 9028: 8699: 1282:
language, which, contrary to Java, uses late binding / multiple dispatch.
8503: 8488: 6834:
library provides a fast, orthogonal implementation of open multimethods.
5285:// (dynamic_cast to a reference type would throw an exception on failure) 4069:"""Behavior when asteroid hits asteroid.""" 1859: 709: 505: 202: 9321:"Report on language support for Multi-Methods and Open-Methods for C ++" 9275: 8743: 461:
is the average number of methods per generic function; the choice ratio
9300: 9171: 8763: 8747: 8611: 8601: 8518: 4539:/* not a type of thing itself, instead used to find number of things */ 3278: 206: 166: 8923: 8639: 8546:, up to v0.19.x (from v0.20.0 it is necessary to pass a compiler flag) 9647: 9384: 8984:. Progress in Theoretical Computer Science. Birkhäuser. p. 384. 8649: 302: 237: 86: 8669: 7598:
As of 2021, as do many other object-oriented programming languages,
3887:
without changing the underlying syntax or keywords of the language.
3296:
provides an implementation of multiple dispatch, generic functions.
3072:# You can unpack the attributes into variables within the signature. 2977:# because they have more specialized types than the preceding three. 8739: 8719: 4257: 3075:# You could even have a constraint on them `(:mass($ a) where 10)`. 9467: 9342:, Fast, Orthogonal Open Multi-Methods for C++ by Jean-Louis Leroy. 8945:
Castagna, Giuseppe; Ghelli, Giorgio & Longo, Giuseppe (1995).
8914: 2632:# We could have also defined entirely new operators this same way. 2626:# but makes no sense to have the objects coerce to a Numeric type. 9339: 8631: 8498: 2891:# redispatch to the previous candidate with the arguments swapped 9809:
Stroustrup, Bjarne; Solodkyy, Yuriy; Pirkelbauer, Peter (2007).
5282:// dynamic_cast to a pointer type returns NULL if the cast fails 9305: 8584: 4249:
The Reg library also supports multiple and predicate dispatch.
2974:# The following two candidates can be anywhere after the proto, 2911:# order the subs were written. ( This one would always match. ) 527: 412: 232:
object-oriented programming languages, when invoking a method (
715:
The example below uses features introduced in C# 9 and C# 10.
9808: 8847: 8627: 8559: 5179: 245: 9049: 8899: 2908:# have 'where' constraints, which get checked in the 2467:
constraints that allow making very specialized subroutines.
1862:, it might look more like this (Common Lisp example shown): 691: 8685: 8564: 2905:# This has to be after the first two because the other ones 9128:"Dynamic .NET - Understanding the Dynamic Keyword in C# 4" 5195:// Example using run time type comparison via dynamic_cast 2859:"$ a.name() was @destroyed.pick() by $ b.name()" 8854:. OOPSLA '08. Nashville, TN, USA: ACM. pp. 563–582. 4243:
and then it goes on to define the multimethod decorator.
3052:"$ n1 collided with $ n2, and both ships were " 7586:
to have, that it can be approximately implemented using
8799: 275:
the function/method carried out in a particular call.
9007:
ACM Transactions on Programming Languages and Systems
6845:
The Asteroids example can be implemented as follows:
8947:"A calculus for overloaded functions with subtyping" 3279:
Extending languages with multiple-dispatch libraries
9185: 9151: 8944: 8465: 2463:Along with the usual type constraints, it also has 213:it – executing a piece of code that references its 201:Developers of computer software typically organize 9537:"The Fortress Language Specification, Version 1.0" 8482: 301:When working with languages that can discriminate 8981:Object-Oriented Programming: A Unified Foundation 8092:In a language with only single dispatch, such as 9842: 340: 9387:, Open Multi-Methods for D by Jean-Louis Leroy. 8462:checks at one or both levels can also be used. 442:Multiple dispatch is used much more heavily in 289:Multiple dispatch should be distinguished from 8895: 8893: 8891: 8889: 8887: 7929:// The override for two DiagonalMatrix objects 4366: 1858:In a language with multiple dispatch, such as 8843: 135: 8841: 8839: 8837: 8835: 8833: 8831: 8829: 8827: 8825: 8823: 675:. It yielded the first formalization of the 9390: 9378: 9356:. Indianapolis, IN, U.S.A: Addison Wesley. 9352:Stroustrup, Bjarne (1994). "Section 13.8". 9173:multimethod: Multiple argument dispatching. 9088:"Using type dynamic (C# Programming Guide)" 8884: 7647:// The override for two DenseMatrix objects 3883:which provides CLOS-style multimethods for 9351: 142: 128: 9018: 8962: 8913: 8820: 4503:/* handle Spaceship-Spaceship collision*/ 4479:/* handle Spaceship-Asteroid collision */ 4455:/* handle Asteroid-Spaceship collision */ 4431:/* handle Asteroid-Asteroid collision */ 3875:extension. For example, using the module 3299:Dynamically-typed version in JavaScript: 1584:// Dynamic dispatch to collideWith method 1290:Groovy implementation of C# example above 978:// Dynamic dispatch to CollideWith method 692:Languages with built-in multiple dispatch 196: 9772:"Notes for Programming Language Experts" 9004: 8977: 8447:// Handle Spaceship-Spaceship collision. 8363:// Call collideWith on the other object. 8228:// Call collideWith on the other object. 6309:/*handle Spaceship-Spaceship collision*/ 4931:// deal with spaceship hitting spaceship 4238:# ... define other multimethod rules ... 3851:// deal with spaceship hitting spaceship 3498:Statically-typed version in TypeScript: 3487:// deal with spaceship hitting spaceship 2017:;; deal with spaceship hitting spaceship 677:problem of covariance and contravariance 9751:"New Features in C#4.0 and VB.Net 10.0" 9428:"Multimethods in C# 4.0 With 'Dynamic'" 8414:// Handle Spaceship-Asteroid collision. 8312:// Handle Asteroid-Spaceship collision. 7276:// handle Spaceship-Spaceship collision 6279:/*handle Spaceship-Asteroid collision*/ 6165:/*handle Asteroid-Spaceship collision*/ 5537:// handle Spaceship-Spaceship collision 4895:// deal with spaceship hitting asteroid 4859:// deal with asteroid hitting spaceship 3818:// deal with spaceship hitting asteroid 3785:// deal with asteroid hitting spaceship 3454:// deal with spaceship hitting asteroid 3421:// deal with asteroid hitting spaceship 1978:;; deal with spaceship hitting asteroid 1939:;; deal with asteroid hitting spaceship 14: 9843: 9486: 8279:// Handle Asteroid-Asteroid collision. 7222:// handle Spaceship-Asteroid collision 7168:// handle Asteroid-Spaceship collision 6135:/*handle Asteroid-Asteroid collision*/ 5486:// handle Spaceship-Asteroid collision 5381:// handle Asteroid-Spaceship collision 4823:// deal with asteroid hitting asteroid 3752:// deal with asteroid hitting asteroid 3388:// deal with asteroid hitting asteroid 1900:;; deal with asteroid hitting asteroid 254:special.method(other, arguments, here) 9608:"Visitor Pattern Versus Multimethods" 9495:. Bedford, MA, U.S.A: Digital Press. 9333: 9056:Theory and Practice of Object Systems 7114:// handle Asteroid-Asteroid collision 5330:// handle Asteroid-Asteroid collision 2970:"$ n1 @damaged.pick() $ n2" 27:Feature of some programming languages 9212:"Five-minute Multimethods in Python" 8470: 5563:or pointer-to-method lookup table: 205:into named blocks variously called 24: 9068:10.1002/j.1096-9942.1995.tb00019.x 5549:// default collision handling here 5393:// default collision handling here 3867:Multiple dispatch can be added to 421: 25: 9867: 9802: 9255:Python Enterprise Application Kit 9169: 8590: 4384:. Here is a simple example in C: 8466:Support in programming languages 8099: 7564:// Spaceship-Spaceship collision 6853:<yorel/yomm2/keywords.hpp> 2579:'some unnamed spaceship' 708: 9856:Polymorphism (computer science) 9784: 9764: 9743: 9723: 9703: 9683: 9660: 9640: 9620: 9600: 9580: 9560: 9529: 9509: 9480: 9460: 9440: 9420: 9354:The Design and Evolution of C++ 9345: 9313: 9293: 9268: 9243: 9218: 9204: 9163: 9140: 9120: 8483:Supporting general multimethods 7583:The Design and Evolution of C++ 7537:// Spaceship-Asteroid collision 7510:// Asteroid-Spaceship collision 7456:// note: types partially erased 484:Degree of specialization (DoS) 9100: 9080: 9043: 8998: 8971: 8938: 8793: 7483:// Asteroid-Asteroid collision 1853: 389:Possible resolutions include: 260:would produce a roar, whereas 185:. This is a generalization of 13: 1: 9851:Method (computer programming) 8786: 8740:The Multiple Dispatch Library 8581:via symbolic pattern matching 7060:// default collision handling 6081:// default collision handling 5190:, dynamic cast or a library: 3530:'@arrows/multimethod' 3325:'@arrows/multimethod' 3283: 405: 341:Expressiveness and modularity 296: 9691:"Multiple Dispatch in Seed7" 4361:# ...define further rules... 376: 228:In more conventional, i.e., 221:that follows the reference. 7: 9824:"Dynamic multiple dispatch" 9628:"Nim Manual: Multi-methods" 9404:. Julialang. Archived from 8978:Castagna, Giuseppe (1996). 8951:Information and Computation 8774: 8572:via late binding, also via 4367:Emulating multiple dispatch 4358:# ...define new behavior... 4316:# ...define new behavior... 4235:# ...define new behavior... 4190:# ...define new behavior... 4072:# ...define new behavior... 1296:(@CompileStatic annotation) 682: 101:Single and dynamic dispatch 10: 9872: 9812:Open Multi-Methods for C++ 9731:"VB.Net Multiple Dispatch" 9588:"Methods – LassoGuide 9.2" 8600:language (via the library 2643:« <=> » ( 9493:Common LISP: The Language 9468:"Multimethods in Clojure" 8708:gnosis.magic.multimethods 8508:Common Lisp Object System 6069:// pointer-to-method call 4252:With the introduction of 3879:and also with the module 3862: 1266: 666: 429:Common Lisp Object System 331: 280:Common Lisp Object System 242:calling a member function 9568:"Multimethods in Groovy" 8748:Vlx-Multimethods Package 8105: 7608: 6847: 5565: 5192: 4715:<cos/gen/object.h> 4697: 4386: 4262: 4145: 4106: 3889: 3500: 3301: 3145:'The Enterprise' 2619:'was damaged by' 2469: 2336: 2050: 2040: 1864: 1284: 1252: 717: 9487:Steele, Guy L. (1990). 8860:10.1145/1449764.1449808 8660:multimethods vocabulary 8087: 7606:library is an example. 7581:Stroustrup mentions in 2616:'collided with' 2449: 1278:compatible/interusable 623:Julia (operators only) 478:Average # methods (DR) 264:would produce a chirp. 64:Parametric polymorphism 9711:"TADS 3 System Manual" 9517:"Background and Goals" 9226:"PEAK-Rules 0.5a1.dev" 9147:Groovy - Multi-methods 8964:10.1006/inco.1995.1033 5173: 5114:"<s,s> = %d 5078:"<s,a> = %d 5042:"<a,s> = %d 5006:"<a,a> = %d 3064:'left damaged' 286:programming language. 197:Understanding dispatch 175:dynamically dispatched 9668:"How S4 Methods Work" 9029:10.1145/203095.203096 8668:(using the extension 5583:<unordered_map> 2932:# randomize the order 2723:« > » ( 2683:« < » ( 2552:'an asteroid' 2372:"Big boom!" 2308:"Big boom!" 1274:is a general purpose 942:"Big boom!" 696: 163:programming languages 161:is a feature of some 9828:docs.racket-lang.org 9230:Python Package Index 7593: 6591:Spaceship::initCases 4709:<cos/Object.h> 4371: 1833:@InheritConstructors 1815:@InheritConstructors 1560:"big-boom" 384:multiple inheritance 328:dispatch is needed. 291:function overloading 55:Operator overloading 50:Function overloading 9792:"Multiple dispatch" 9362:1994dec..book.....S 9158:@arrows/multimethod 9052:"On binary methods" 8768:@arrows/multimethod 8744:Multimethod Package 8690:Class::Multimethods 8680:@arrows/multimethod 6678:spaceship_collision 6579:spaceship_collision 6492:Asteroid::initCases 6390:CollisionHandlerMap 6288:spaceship_collision 6144:spaceship_collision 5931:CollisionHandlerMap 5799:CollisionHandlerMap 5727:CollisionHandlerMap 3294:multimethod package 2763:« == » ( 78:Generic programming 41:Ad hoc polymorphism 9197:2005-03-09 at the 8781:Predicate dispatch 8658:(via the standard 6639:asteroid_collision 6534:asteroid_collision 6258:asteroid_collision 6114:asteroid_collision 593:Dylan (OpenDylan) 481:Choice ratio (CR) 358:expression problem 116:Predicate dispatch 9753:. 4 November 2010 9502:978-1-55558-041-4 9371:978-0-201-54330-8 8991:978-0-8176-3905-1 8924:10.1137/141000671 8738:(via the library 8648:(via the library 8630:(via the library 8622:multimethod-sharp 8620:(via the library 8610:(via the library 5184:Bjarne Stroustrup 4937:// example of use 4135:Using Python 2.4 2035:generic functions 664: 663: 234:sending a message 155:Multiple dispatch 152: 151: 111:Multiple dispatch 16:(Redirected from 9863: 9837: 9835: 9834: 9819: 9817: 9796: 9795: 9788: 9782: 9781: 9779: 9778: 9768: 9762: 9761: 9759: 9758: 9747: 9741: 9740: 9738: 9737: 9727: 9721: 9720: 9718: 9717: 9707: 9701: 9700: 9698: 9697: 9687: 9681: 9680: 9678: 9677: 9672: 9664: 9658: 9657: 9655: 9654: 9644: 9638: 9637: 9635: 9634: 9624: 9618: 9617: 9615: 9614: 9604: 9598: 9597: 9595: 9594: 9584: 9578: 9577: 9575: 9574: 9564: 9558: 9557: 9555: 9554: 9548: 9542:. Archived from 9541: 9533: 9527: 9526: 9524: 9523: 9513: 9507: 9506: 9484: 9478: 9477: 9475: 9474: 9464: 9458: 9457: 9455: 9454: 9448:"Cecil Language" 9444: 9438: 9437: 9435: 9434: 9424: 9418: 9417: 9415: 9413: 9402:The Julia Manual 9394: 9388: 9382: 9376: 9375: 9349: 9343: 9337: 9331: 9330: 9325: 9317: 9311: 9310: 9297: 9291: 9290: 9288: 9286: 9272: 9266: 9265: 9263: 9261: 9247: 9241: 9240: 9238: 9236: 9222: 9216: 9215: 9208: 9202: 9189: 9183: 9182: 9181: 9180: 9167: 9161: 9155: 9149: 9144: 9138: 9137: 9135: 9134: 9124: 9118: 9117: 9115: 9114: 9108:"Basic concepts" 9104: 9098: 9097: 9095: 9094: 9084: 9078: 9077: 9075: 9074: 9047: 9041: 9040: 9022: 9002: 8996: 8995: 8975: 8969: 8968: 8966: 8942: 8936: 8935: 8917: 8897: 8882: 8881: 8845: 8818: 8817: 8797: 8716:multipledispatch 8688:(via the module 8602:MultiMethods.NET 8579:Wolfram Language 8471:Primary paradigm 8461: 8454: 8451: 8448: 8445: 8442: 8439: 8436: 8433: 8430: 8427: 8424: 8421: 8418: 8415: 8412: 8409: 8406: 8403: 8400: 8397: 8394: 8391: 8388: 8385: 8382: 8379: 8376: 8373: 8370: 8367: 8364: 8361: 8358: 8355: 8352: 8349: 8346: 8343: 8340: 8337: 8334: 8331: 8328: 8325: 8322: 8319: 8316: 8313: 8310: 8307: 8304: 8301: 8298: 8295: 8292: 8289: 8286: 8283: 8280: 8277: 8274: 8271: 8268: 8265: 8262: 8259: 8256: 8253: 8250: 8247: 8244: 8241: 8238: 8235: 8232: 8229: 8226: 8223: 8220: 8217: 8214: 8211: 8208: 8205: 8202: 8199: 8196: 8193: 8190: 8187: 8184: 8181: 8178: 8175: 8172: 8169: 8166: 8163: 8160: 8157: 8154: 8151: 8148: 8145: 8142: 8139: 8136: 8133: 8130: 8127: 8124: 8121: 8118: 8115: 8112: 8109: 8103: 8083: 8080: 8077: 8074: 8071: 8068: 8065: 8062: 8059: 8056: 8053: 8050: 8047: 8044: 8041: 8038: 8035: 8032: 8029: 8026: 8023: 8020: 8017: 8014: 8011: 8008: 8005: 8002: 7999: 7996: 7993: 7990: 7987: 7984: 7981: 7978: 7975: 7972: 7969: 7966: 7963: 7960: 7957: 7954: 7951: 7948: 7945: 7942: 7939: 7936: 7933: 7930: 7927: 7924: 7921: 7918: 7915: 7912: 7909: 7906: 7903: 7900: 7897: 7894: 7891: 7888: 7885: 7882: 7879: 7876: 7873: 7870: 7867: 7864: 7861: 7858: 7855: 7852: 7849: 7846: 7843: 7840: 7837: 7834: 7831: 7828: 7825: 7822: 7819: 7816: 7813: 7810: 7807: 7804: 7801: 7798: 7795: 7792: 7789: 7786: 7783: 7780: 7777: 7774: 7771: 7768: 7765: 7762: 7759: 7756: 7753: 7750: 7747: 7744: 7741: 7738: 7735: 7732: 7729: 7726: 7723: 7720: 7717: 7714: 7711: 7708: 7705: 7702: 7699: 7696: 7693: 7690: 7687: 7684: 7681: 7678: 7675: 7672: 7669: 7666: 7663: 7660: 7657: 7654: 7651: 7648: 7645: 7642: 7639: 7636: 7633: 7630: 7627: 7624: 7621: 7618: 7615: 7612: 7577: 7574: 7571: 7568: 7565: 7562: 7559: 7556: 7553: 7550: 7547: 7544: 7541: 7538: 7535: 7532: 7529: 7526: 7523: 7520: 7517: 7514: 7511: 7508: 7505: 7502: 7499: 7496: 7493: 7490: 7487: 7484: 7481: 7478: 7475: 7472: 7469: 7466: 7463: 7460: 7457: 7454: 7451: 7448: 7445: 7442: 7439: 7436: 7433: 7430: 7427: 7424: 7421: 7418: 7415: 7412: 7409: 7406: 7403: 7400: 7397: 7394: 7391: 7388: 7385: 7382: 7379: 7376: 7373: 7370: 7367: 7364: 7361: 7358: 7355: 7352: 7349: 7346: 7343: 7340: 7337: 7334: 7331: 7328: 7325: 7322: 7319: 7316: 7313: 7310: 7307: 7304: 7301: 7298: 7295: 7292: 7289: 7286: 7283: 7280: 7277: 7274: 7271: 7268: 7265: 7262: 7259: 7256: 7253: 7250: 7247: 7244: 7241: 7238: 7235: 7232: 7229: 7226: 7223: 7220: 7217: 7214: 7211: 7208: 7205: 7202: 7199: 7196: 7193: 7190: 7187: 7184: 7181: 7178: 7175: 7172: 7169: 7166: 7163: 7160: 7157: 7154: 7151: 7148: 7145: 7142: 7139: 7136: 7133: 7130: 7127: 7124: 7121: 7118: 7115: 7112: 7109: 7106: 7103: 7100: 7097: 7094: 7091: 7088: 7085: 7082: 7079: 7076: 7073: 7070: 7067: 7064: 7061: 7058: 7055: 7052: 7049: 7046: 7043: 7040: 7037: 7034: 7031: 7028: 7025: 7022: 7019: 7016: 7013: 7010: 7007: 7004: 7001: 6998: 6995: 6992: 6989: 6986: 6983: 6980: 6977: 6974: 6971: 6968: 6965: 6962: 6959: 6956: 6953: 6950: 6947: 6944: 6941: 6938: 6937:register_classes 6935: 6932: 6929: 6926: 6923: 6920: 6917: 6914: 6911: 6908: 6905: 6902: 6899: 6896: 6893: 6890: 6887: 6884: 6881: 6878: 6875: 6872: 6869: 6866: 6863: 6860: 6857: 6854: 6851: 6826: 6823: 6820: 6817: 6814: 6811: 6808: 6805: 6802: 6799: 6796: 6793: 6790: 6787: 6784: 6781: 6778: 6775: 6772: 6769: 6766: 6763: 6760: 6757: 6754: 6751: 6748: 6745: 6742: 6739: 6736: 6733: 6730: 6727: 6724: 6721: 6718: 6715: 6712: 6709: 6706: 6703: 6700: 6697: 6694: 6691: 6688: 6685: 6682: 6679: 6676: 6673: 6670: 6667: 6664: 6663:CollisionHandler 6661: 6658: 6655: 6652: 6649: 6646: 6643: 6640: 6637: 6634: 6631: 6628: 6625: 6624:CollisionHandler 6622: 6619: 6616: 6613: 6610: 6607: 6604: 6601: 6598: 6595: 6592: 6589: 6586: 6583: 6580: 6577: 6574: 6571: 6568: 6565: 6564:CollisionHandler 6562: 6559: 6556: 6553: 6550: 6547: 6544: 6541: 6538: 6535: 6532: 6529: 6526: 6523: 6520: 6519:CollisionHandler 6517: 6514: 6511: 6508: 6505: 6502: 6499: 6496: 6493: 6490: 6487: 6484: 6481: 6478: 6475: 6472: 6469: 6466: 6463: 6460: 6457: 6454: 6451: 6448: 6445: 6442: 6439: 6436: 6433: 6430: 6427: 6424: 6421: 6418: 6415: 6412: 6409: 6406: 6403: 6400: 6397: 6394: 6391: 6388: 6385: 6382: 6379: 6376: 6373: 6370: 6367: 6364: 6361: 6358: 6355: 6352: 6349: 6346: 6343: 6340: 6337: 6334: 6331: 6328: 6325: 6322: 6319: 6316: 6313: 6310: 6307: 6304: 6301: 6298: 6295: 6292: 6289: 6286: 6283: 6280: 6277: 6274: 6271: 6268: 6265: 6262: 6259: 6256: 6253: 6250: 6247: 6244: 6241: 6238: 6235: 6232: 6229: 6226: 6223: 6220: 6217: 6214: 6211: 6208: 6205: 6202: 6199: 6196: 6193: 6190: 6187: 6184: 6181: 6178: 6175: 6172: 6169: 6166: 6163: 6160: 6157: 6154: 6151: 6148: 6145: 6142: 6139: 6136: 6133: 6130: 6127: 6124: 6121: 6118: 6115: 6112: 6109: 6106: 6103: 6100: 6097: 6094: 6091: 6088: 6085: 6082: 6079: 6076: 6073: 6070: 6067: 6064: 6061: 6058: 6055: 6052: 6049: 6046: 6043: 6040: 6037: 6034: 6031: 6028: 6025: 6022: 6019: 6016: 6013: 6010: 6007: 6004: 6001: 5998: 5995: 5992: 5989: 5986: 5983: 5980: 5977: 5974: 5971: 5968: 5965: 5962: 5959: 5956: 5953: 5950: 5947: 5944: 5941: 5938: 5935: 5932: 5929: 5926: 5923: 5920: 5917: 5914: 5911: 5908: 5905: 5902: 5899: 5896: 5893: 5890: 5887: 5884: 5881: 5878: 5875: 5872: 5869: 5866: 5863: 5860: 5857: 5854: 5851: 5848: 5845: 5842: 5839: 5836: 5833: 5830: 5827: 5824: 5821: 5818: 5815: 5812: 5809: 5806: 5803: 5800: 5797: 5794: 5791: 5788: 5785: 5782: 5779: 5776: 5775:CollisionHandler 5773: 5770: 5767: 5764: 5761: 5758: 5755: 5752: 5749: 5746: 5743: 5740: 5737: 5734: 5731: 5728: 5725: 5722: 5721:CollisionHandler 5719: 5716: 5713: 5710: 5707: 5704: 5701: 5698: 5695: 5692: 5689: 5686: 5683: 5680: 5677: 5676:CollisionHandler 5674: 5671: 5668: 5665: 5662: 5659: 5656: 5653: 5650: 5647: 5644: 5641: 5638: 5635: 5632: 5629: 5626: 5623: 5620: 5617: 5614: 5611: 5608: 5605: 5602: 5599: 5596: 5593: 5590: 5587: 5584: 5581: 5578: 5577:<typeinfo> 5575: 5572: 5569: 5559: 5556: 5553: 5550: 5547: 5544: 5541: 5538: 5535: 5532: 5529: 5526: 5523: 5520: 5517: 5514: 5511: 5508: 5505: 5502: 5499: 5496: 5493: 5490: 5487: 5484: 5481: 5478: 5475: 5472: 5469: 5466: 5463: 5460: 5457: 5454: 5451: 5448: 5445: 5442: 5439: 5436: 5433: 5430: 5427: 5424: 5421: 5418: 5415: 5412: 5409: 5406: 5403: 5400: 5397: 5394: 5391: 5388: 5385: 5382: 5379: 5376: 5373: 5370: 5367: 5364: 5361: 5358: 5355: 5352: 5349: 5346: 5343: 5340: 5337: 5334: 5331: 5328: 5325: 5322: 5319: 5316: 5313: 5310: 5307: 5304: 5301: 5298: 5295: 5292: 5289: 5286: 5283: 5280: 5277: 5274: 5271: 5268: 5265: 5262: 5259: 5256: 5253: 5250: 5247: 5244: 5241: 5238: 5235: 5232: 5229: 5226: 5223: 5220: 5217: 5214: 5211: 5208: 5205: 5202: 5199: 5196: 5169: 5166: 5163: 5160: 5157: 5154: 5151: 5148: 5145: 5142: 5139: 5136: 5133: 5130: 5127: 5124: 5121: 5118: 5115: 5112: 5109: 5106: 5103: 5100: 5097: 5094: 5091: 5088: 5085: 5082: 5079: 5076: 5073: 5070: 5067: 5064: 5061: 5058: 5055: 5052: 5049: 5046: 5043: 5040: 5037: 5034: 5031: 5028: 5025: 5022: 5019: 5016: 5013: 5010: 5007: 5004: 5001: 4998: 4995: 4992: 4989: 4986: 4983: 4980: 4977: 4974: 4971: 4968: 4965: 4962: 4959: 4956: 4953: 4950: 4947: 4944: 4941: 4938: 4935: 4932: 4929: 4926: 4923: 4920: 4917: 4914: 4911: 4908: 4905: 4902: 4899: 4896: 4893: 4890: 4887: 4884: 4881: 4878: 4875: 4872: 4869: 4866: 4863: 4860: 4857: 4854: 4851: 4848: 4845: 4842: 4839: 4836: 4833: 4830: 4827: 4824: 4821: 4818: 4815: 4812: 4809: 4806: 4803: 4800: 4797: 4794: 4791: 4788: 4785: 4782: 4779: 4776: 4773: 4770: 4767: 4764: 4761: 4758: 4755: 4752: 4749: 4746: 4743: 4740: 4737: 4734: 4731: 4728: 4725: 4722: 4719: 4716: 4713: 4710: 4707: 4704: 4701: 4690: 4687: 4684: 4681: 4678: 4675: 4672: 4669: 4666: 4663: 4660: 4657: 4654: 4651: 4648: 4645: 4642: 4639: 4636: 4633: 4630: 4627: 4624: 4621: 4618: 4615: 4612: 4609: 4606: 4603: 4600: 4597: 4594: 4591: 4588: 4585: 4582: 4579: 4576: 4573: 4570: 4567: 4564: 4561: 4558: 4555: 4552: 4549: 4546: 4543: 4540: 4537: 4534: 4531: 4528: 4525: 4522: 4519: 4516: 4513: 4510: 4507: 4504: 4501: 4498: 4495: 4492: 4489: 4486: 4483: 4480: 4477: 4474: 4471: 4468: 4465: 4462: 4459: 4456: 4453: 4450: 4447: 4444: 4441: 4438: 4435: 4432: 4429: 4426: 4423: 4420: 4417: 4414: 4411: 4408: 4405: 4402: 4399: 4396: 4393: 4390: 4379:function pointer 4362: 4359: 4356: 4353: 4350: 4347: 4344: 4341: 4338: 4335: 4332: 4329: 4326: 4323: 4320: 4317: 4314: 4311: 4308: 4305: 4302: 4299: 4296: 4293: 4290: 4287: 4284: 4281: 4278: 4275: 4272: 4269: 4266: 4239: 4236: 4233: 4230: 4227: 4224: 4221: 4218: 4215: 4212: 4209: 4206: 4203: 4200: 4197: 4194: 4191: 4188: 4185: 4182: 4179: 4176: 4173: 4170: 4167: 4164: 4161: 4158: 4155: 4152: 4149: 4141:Guido van Rossum 4128: 4125: 4122: 4119: 4116: 4113: 4110: 4103: 4100: 4097: 4094: 4091: 4088: 4085: 4082: 4079: 4076: 4073: 4070: 4067: 4064: 4061: 4058: 4055: 4052: 4049: 4046: 4043: 4040: 4037: 4034: 4031: 4028: 4025: 4022: 4019: 4016: 4013: 4010: 4007: 4004: 4001: 3998: 3995: 3992: 3989: 3986: 3983: 3980: 3977: 3974: 3971: 3968: 3965: 3962: 3959: 3956: 3953: 3950: 3947: 3944: 3941: 3938: 3935: 3932: 3929: 3926: 3923: 3920: 3917: 3914: 3911: 3908: 3905: 3902: 3899: 3896: 3893: 3858: 3855: 3852: 3849: 3846: 3843: 3840: 3837: 3834: 3831: 3828: 3825: 3822: 3819: 3816: 3813: 3810: 3807: 3804: 3801: 3798: 3795: 3792: 3789: 3786: 3783: 3780: 3777: 3774: 3771: 3768: 3765: 3762: 3759: 3756: 3753: 3750: 3747: 3744: 3741: 3738: 3735: 3732: 3729: 3726: 3723: 3720: 3717: 3714: 3711: 3708: 3705: 3702: 3699: 3696: 3693: 3690: 3687: 3684: 3681: 3678: 3675: 3672: 3669: 3666: 3663: 3660: 3657: 3654: 3651: 3648: 3645: 3642: 3639: 3636: 3633: 3630: 3627: 3624: 3621: 3618: 3615: 3612: 3609: 3606: 3603: 3600: 3597: 3594: 3591: 3588: 3585: 3582: 3579: 3576: 3573: 3570: 3567: 3564: 3561: 3558: 3555: 3552: 3549: 3546: 3543: 3540: 3537: 3534: 3531: 3528: 3525: 3522: 3519: 3516: 3513: 3510: 3507: 3504: 3494: 3491: 3488: 3485: 3482: 3479: 3476: 3473: 3470: 3467: 3464: 3461: 3458: 3455: 3452: 3449: 3446: 3443: 3440: 3437: 3434: 3431: 3428: 3425: 3422: 3419: 3416: 3413: 3410: 3407: 3404: 3401: 3398: 3395: 3392: 3389: 3386: 3383: 3380: 3377: 3374: 3371: 3368: 3365: 3362: 3359: 3356: 3353: 3350: 3347: 3344: 3341: 3338: 3335: 3332: 3329: 3326: 3323: 3320: 3317: 3314: 3311: 3308: 3305: 3273: 3269: 3265: 3261: 3257: 3253: 3249: 3245: 3242: 3238: 3234: 3230: 3226: 3222: 3219: 3215: 3211: 3207: 3203: 3199: 3196: 3192: 3188: 3184: 3180: 3176: 3173: 3169: 3165: 3161: 3157: 3153: 3150: 3146: 3142: 3138: 3134: 3130: 3126: 3123: 3120: 3116: 3113: 3109: 3105: 3101: 3097: 3093: 3089: 3085: 3082: 3079: 3076: 3073: 3069: 3065: 3061: 3057: 3053: 3050: 3046: 3042: 3038: 3034: 3030: 3026: 3022: 3018: 3014: 3010: 3007: 3004: 3001: 2997: 2994: 2990: 2987: 2984: 2981: 2978: 2975: 2971: 2968: 2964: 2960: 2956: 2952: 2948: 2944: 2940: 2936: 2933: 2929: 2925: 2921: 2918: 2915: 2912: 2909: 2906: 2902: 2898: 2895: 2892: 2888: 2884: 2881: 2878: 2874: 2870: 2867: 2864: 2860: 2857: 2853: 2849: 2846: 2843: 2839: 2835: 2832: 2829: 2826: 2823: 2820: 2816: 2815:Stellar-Object:D 2812: 2811:Stellar-Object:D 2808: 2805: 2802: 2799: 2796: 2792: 2788: 2784: 2780: 2776: 2773: 2772:Stellar-Object:D 2769: 2766: 2765:Stellar-Object:D 2762: 2759: 2756: 2752: 2748: 2744: 2740: 2736: 2733: 2732:Stellar-Object:D 2729: 2726: 2725:Stellar-Object:D 2722: 2719: 2716: 2712: 2708: 2704: 2700: 2696: 2693: 2692:Stellar-Object:D 2689: 2686: 2685:Stellar-Object:D 2682: 2679: 2676: 2672: 2668: 2664: 2660: 2656: 2653: 2652:Stellar-Object:D 2649: 2646: 2645:Stellar-Object:D 2642: 2639: 2636: 2633: 2630: 2627: 2624: 2620: 2617: 2614: 2610: 2607: 2604: 2600: 2597: 2594: 2590: 2587: 2584: 2580: 2576: 2573: 2570: 2566: 2563: 2560: 2557: 2553: 2549: 2546: 2542: 2539: 2536: 2533: 2529: 2526: 2522: 2519: 2515: 2512: 2509: 2506: 2503: 2499: 2496: 2492: 2488: 2485: 2482: 2479: 2476: 2473: 2445: 2442: 2439: 2436: 2433: 2430: 2427: 2424: 2421: 2418: 2415: 2412: 2409: 2406: 2403: 2400: 2397: 2394: 2391: 2388: 2385: 2382: 2379: 2376: 2373: 2370: 2367: 2364: 2361: 2358: 2355: 2352: 2349: 2346: 2343: 2340: 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: 2129: 2126: 2123: 2120: 2117: 2114: 2111: 2108: 2105: 2102: 2099: 2096: 2093: 2090: 2087: 2084: 2081: 2078: 2075: 2072: 2069: 2066: 2063: 2060: 2057: 2054: 2021: 2018: 2015: 2012: 2009: 2006: 2003: 2000: 1997: 1994: 1991: 1988: 1985: 1982: 1979: 1976: 1973: 1970: 1967: 1964: 1961: 1958: 1955: 1952: 1949: 1946: 1943: 1940: 1937: 1934: 1931: 1928: 1925: 1922: 1919: 1916: 1913: 1910: 1907: 1904: 1901: 1898: 1895: 1892: 1889: 1886: 1883: 1880: 1877: 1874: 1871: 1868: 1849: 1846: 1843: 1840: 1837: 1834: 1831: 1828: 1825: 1822: 1819: 1816: 1813: 1810: 1807: 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: 1648: 1645: 1642: 1639: 1636: 1633: 1630: 1627: 1624: 1621: 1618: 1615: 1612: 1609: 1606: 1603: 1600: 1597: 1594: 1591: 1588: 1585: 1582: 1579: 1576: 1573: 1570: 1567: 1564: 1561: 1558: 1555: 1552: 1549: 1546: 1543: 1540: 1537: 1534: 1531: 1528: 1525: 1522: 1519: 1516: 1513: 1510: 1507: 1504: 1501: 1498: 1495: 1492: 1489: 1486: 1483: 1480: 1477: 1474: 1471: 1468: 1465: 1462: 1459: 1456: 1453: 1450: 1447: 1444: 1441: 1438: 1435: 1432: 1429: 1426: 1423: 1420: 1417: 1414: 1411: 1408: 1405: 1402: 1399: 1396: 1393: 1390: 1387: 1384: 1381: 1378: 1375: 1372: 1369: 1366: 1363: 1360: 1357: 1354: 1351: 1348: 1345: 1342: 1339: 1336: 1333: 1330: 1327: 1324: 1321: 1318: 1315: 1312: 1309: 1306: 1303: 1300: 1297: 1294: 1291: 1288: 1262: 1259: 1256: 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: 1072: 1069: 1066: 1063: 1060: 1057: 1054: 1051: 1048: 1045: 1042: 1039: 1036: 1033: 1030: 1027: 1024: 1021: 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: 712: 472: 471: 468: 464: 460: 452:binary operators 448:standard library 263: 259: 255: 144: 137: 130: 96:Virtual function 73:Generic function 30: 29: 21: 9871: 9870: 9866: 9865: 9864: 9862: 9861: 9860: 9841: 9840: 9832: 9830: 9822: 9815: 9805: 9800: 9799: 9790: 9789: 9785: 9776: 9774: 9770: 9769: 9765: 9756: 9754: 9749: 9748: 9744: 9735: 9733: 9729: 9728: 9724: 9715: 9713: 9709: 9708: 9704: 9695: 9693: 9689: 9688: 9684: 9675: 9673: 9670: 9666: 9665: 9661: 9652: 9650: 9646: 9645: 9641: 9632: 9630: 9626: 9625: 9621: 9612: 9610: 9606: 9605: 9601: 9592: 9590: 9586: 9585: 9581: 9572: 9570: 9566: 9565: 9561: 9552: 9550: 9546: 9539: 9535: 9534: 9530: 9521: 9519: 9515: 9514: 9510: 9503: 9485: 9481: 9472: 9470: 9466: 9465: 9461: 9452: 9450: 9446: 9445: 9441: 9432: 9430: 9426: 9425: 9421: 9411: 9409: 9408:on 17 July 2016 9396: 9395: 9391: 9383: 9379: 9372: 9350: 9346: 9338: 9334: 9323: 9319: 9318: 9314: 9299: 9298: 9294: 9284: 9282: 9274: 9273: 9269: 9259: 9257: 9249: 9248: 9244: 9234: 9232: 9224: 9223: 9219: 9210: 9209: 9205: 9199:Wayback Machine 9192:multimethods.py 9190: 9186: 9178: 9176: 9168: 9164: 9156: 9152: 9145: 9141: 9132: 9130: 9126: 9125: 9121: 9112: 9110: 9106: 9105: 9101: 9092: 9090: 9086: 9085: 9081: 9072: 9070: 9048: 9044: 9020:10.1.1.115.5992 9003: 8999: 8992: 8976: 8972: 8943: 8939: 8898: 8885: 8870: 8846: 8821: 8814: 8798: 8794: 8789: 8777: 8730:multimethod-lib 8612:C Object System 8593: 8485: 8473: 8468: 8459: 8456: 8455: 8452: 8449: 8446: 8443: 8440: 8437: 8434: 8431: 8428: 8425: 8422: 8419: 8416: 8413: 8410: 8407: 8404: 8401: 8398: 8395: 8392: 8389: 8386: 8383: 8380: 8377: 8374: 8371: 8368: 8365: 8362: 8359: 8356: 8353: 8350: 8347: 8344: 8341: 8338: 8335: 8332: 8329: 8326: 8323: 8320: 8317: 8314: 8311: 8308: 8305: 8302: 8299: 8296: 8293: 8290: 8287: 8284: 8281: 8278: 8275: 8272: 8269: 8266: 8263: 8260: 8257: 8254: 8251: 8248: 8245: 8242: 8239: 8236: 8233: 8230: 8227: 8224: 8221: 8218: 8215: 8212: 8209: 8206: 8203: 8200: 8197: 8194: 8191: 8188: 8185: 8182: 8179: 8176: 8173: 8170: 8167: 8164: 8161: 8158: 8155: 8152: 8149: 8146: 8143: 8140: 8137: 8134: 8131: 8128: 8125: 8122: 8119: 8116: 8113: 8110: 8107: 8090: 8085: 8084: 8081: 8078: 8075: 8072: 8069: 8066: 8063: 8060: 8057: 8054: 8051: 8048: 8045: 8042: 8039: 8036: 8033: 8030: 8027: 8024: 8021: 8018: 8015: 8012: 8009: 8006: 8003: 8000: 7997: 7994: 7991: 7988: 7985: 7982: 7979: 7976: 7973: 7970: 7967: 7964: 7961: 7958: 7955: 7952: 7949: 7946: 7943: 7940: 7937: 7934: 7931: 7928: 7925: 7922: 7919: 7916: 7913: 7910: 7907: 7904: 7901: 7898: 7895: 7892: 7889: 7886: 7883: 7880: 7877: 7874: 7871: 7868: 7865: 7862: 7859: 7856: 7853: 7850: 7847: 7844: 7841: 7838: 7835: 7832: 7829: 7826: 7823: 7820: 7817: 7814: 7811: 7808: 7805: 7802: 7799: 7796: 7793: 7790: 7787: 7784: 7781: 7778: 7775: 7772: 7769: 7766: 7763: 7760: 7757: 7754: 7751: 7748: 7745: 7742: 7739: 7736: 7733: 7730: 7727: 7724: 7721: 7718: 7715: 7712: 7709: 7706: 7703: 7700: 7697: 7694: 7691: 7688: 7685: 7682: 7679: 7676: 7673: 7670: 7667: 7664: 7661: 7658: 7655: 7652: 7649: 7646: 7643: 7640: 7637: 7634: 7631: 7628: 7625: 7622: 7619: 7616: 7613: 7610: 7596: 7588:double dispatch 7579: 7578: 7575: 7572: 7569: 7566: 7563: 7560: 7557: 7554: 7551: 7548: 7545: 7542: 7539: 7536: 7533: 7530: 7527: 7524: 7521: 7518: 7515: 7512: 7509: 7506: 7503: 7500: 7497: 7494: 7491: 7488: 7485: 7482: 7479: 7476: 7473: 7470: 7467: 7464: 7461: 7458: 7455: 7452: 7449: 7446: 7443: 7440: 7437: 7434: 7431: 7428: 7425: 7422: 7419: 7416: 7413: 7410: 7407: 7404: 7401: 7398: 7395: 7392: 7389: 7386: 7383: 7380: 7377: 7374: 7371: 7368: 7365: 7362: 7359: 7356: 7353: 7350: 7347: 7344: 7341: 7338: 7335: 7332: 7329: 7326: 7323: 7320: 7317: 7314: 7311: 7308: 7305: 7302: 7299: 7296: 7293: 7290: 7287: 7284: 7281: 7278: 7275: 7272: 7269: 7266: 7263: 7260: 7257: 7254: 7251: 7248: 7245: 7242: 7239: 7236: 7233: 7230: 7227: 7224: 7221: 7218: 7215: 7212: 7209: 7206: 7203: 7200: 7197: 7194: 7191: 7188: 7185: 7182: 7179: 7176: 7173: 7170: 7167: 7164: 7161: 7158: 7155: 7152: 7149: 7146: 7143: 7140: 7137: 7134: 7131: 7128: 7125: 7122: 7119: 7116: 7113: 7110: 7107: 7104: 7101: 7098: 7095: 7092: 7089: 7086: 7083: 7080: 7077: 7074: 7071: 7068: 7065: 7062: 7059: 7056: 7053: 7050: 7047: 7044: 7041: 7038: 7035: 7032: 7029: 7026: 7023: 7020: 7017: 7014: 7011: 7008: 7005: 7002: 6999: 6996: 6993: 6990: 6987: 6984: 6981: 6978: 6975: 6972: 6969: 6966: 6963: 6960: 6957: 6954: 6951: 6948: 6945: 6942: 6939: 6936: 6933: 6930: 6927: 6924: 6921: 6918: 6915: 6912: 6909: 6906: 6903: 6900: 6897: 6894: 6891: 6888: 6885: 6882: 6879: 6876: 6873: 6870: 6867: 6864: 6861: 6858: 6855: 6852: 6849: 6828: 6827: 6824: 6821: 6818: 6815: 6812: 6809: 6806: 6803: 6800: 6797: 6794: 6791: 6788: 6785: 6782: 6779: 6776: 6773: 6770: 6767: 6764: 6761: 6758: 6755: 6752: 6749: 6746: 6743: 6740: 6737: 6734: 6731: 6728: 6725: 6722: 6719: 6716: 6713: 6710: 6707: 6704: 6701: 6698: 6695: 6692: 6689: 6686: 6683: 6680: 6677: 6674: 6671: 6668: 6665: 6662: 6659: 6656: 6653: 6650: 6647: 6644: 6641: 6638: 6635: 6632: 6629: 6626: 6623: 6620: 6617: 6614: 6611: 6608: 6605: 6602: 6599: 6596: 6593: 6590: 6587: 6584: 6581: 6578: 6575: 6572: 6569: 6566: 6563: 6560: 6557: 6554: 6551: 6548: 6545: 6542: 6539: 6536: 6533: 6530: 6527: 6524: 6521: 6518: 6515: 6512: 6509: 6506: 6503: 6500: 6497: 6494: 6491: 6488: 6485: 6482: 6479: 6476: 6473: 6470: 6467: 6464: 6461: 6458: 6455: 6452: 6449: 6446: 6443: 6440: 6437: 6434: 6431: 6428: 6425: 6422: 6419: 6416: 6413: 6410: 6407: 6404: 6401: 6398: 6395: 6392: 6389: 6386: 6383: 6380: 6377: 6374: 6371: 6368: 6365: 6362: 6359: 6356: 6353: 6350: 6347: 6344: 6341: 6338: 6335: 6332: 6329: 6326: 6323: 6320: 6317: 6314: 6311: 6308: 6305: 6302: 6299: 6296: 6293: 6290: 6287: 6284: 6281: 6278: 6275: 6272: 6269: 6266: 6263: 6260: 6257: 6254: 6251: 6248: 6245: 6242: 6239: 6236: 6233: 6230: 6227: 6224: 6221: 6218: 6215: 6212: 6209: 6206: 6203: 6200: 6197: 6194: 6191: 6188: 6185: 6182: 6179: 6176: 6173: 6170: 6167: 6164: 6161: 6158: 6155: 6152: 6149: 6146: 6143: 6140: 6137: 6134: 6131: 6128: 6125: 6122: 6119: 6116: 6113: 6110: 6107: 6104: 6101: 6098: 6095: 6092: 6089: 6086: 6083: 6080: 6077: 6074: 6071: 6068: 6065: 6062: 6059: 6056: 6053: 6050: 6047: 6044: 6041: 6038: 6035: 6032: 6029: 6026: 6023: 6020: 6017: 6014: 6011: 6008: 6005: 6002: 5999: 5996: 5993: 5990: 5987: 5984: 5981: 5978: 5975: 5972: 5969: 5966: 5963: 5960: 5957: 5954: 5951: 5948: 5945: 5942: 5939: 5936: 5933: 5930: 5927: 5924: 5921: 5918: 5915: 5912: 5909: 5906: 5903: 5900: 5897: 5894: 5891: 5888: 5885: 5882: 5879: 5876: 5873: 5870: 5867: 5864: 5861: 5858: 5855: 5852: 5849: 5846: 5843: 5840: 5837: 5834: 5831: 5828: 5825: 5822: 5819: 5816: 5813: 5810: 5807: 5804: 5801: 5798: 5795: 5792: 5789: 5786: 5783: 5780: 5777: 5774: 5771: 5768: 5765: 5762: 5759: 5756: 5753: 5750: 5747: 5744: 5741: 5738: 5735: 5732: 5729: 5726: 5723: 5720: 5717: 5714: 5711: 5708: 5705: 5702: 5699: 5696: 5693: 5690: 5687: 5684: 5681: 5678: 5675: 5672: 5669: 5666: 5663: 5660: 5657: 5654: 5651: 5648: 5645: 5642: 5639: 5636: 5633: 5630: 5627: 5624: 5621: 5618: 5615: 5612: 5609: 5606: 5603: 5600: 5597: 5594: 5591: 5588: 5585: 5582: 5579: 5576: 5573: 5571:<cstdint> 5570: 5567: 5561: 5560: 5557: 5554: 5551: 5548: 5545: 5542: 5539: 5536: 5533: 5530: 5527: 5524: 5521: 5518: 5515: 5512: 5509: 5506: 5503: 5500: 5497: 5494: 5491: 5488: 5485: 5482: 5479: 5476: 5473: 5470: 5467: 5464: 5461: 5458: 5455: 5452: 5449: 5446: 5443: 5440: 5437: 5434: 5431: 5428: 5425: 5422: 5419: 5416: 5413: 5410: 5407: 5404: 5401: 5398: 5395: 5392: 5389: 5386: 5383: 5380: 5377: 5374: 5371: 5368: 5365: 5362: 5359: 5356: 5353: 5350: 5347: 5344: 5341: 5338: 5335: 5332: 5329: 5326: 5323: 5320: 5317: 5314: 5311: 5308: 5305: 5302: 5299: 5296: 5293: 5290: 5287: 5284: 5281: 5278: 5275: 5272: 5269: 5266: 5263: 5260: 5257: 5254: 5251: 5248: 5245: 5242: 5239: 5236: 5233: 5230: 5227: 5224: 5221: 5218: 5215: 5212: 5209: 5206: 5203: 5200: 5197: 5194: 5188:visitor pattern 5176: 5171: 5170: 5167: 5164: 5161: 5158: 5155: 5152: 5149: 5146: 5143: 5140: 5137: 5134: 5131: 5128: 5125: 5122: 5119: 5116: 5113: 5110: 5107: 5104: 5101: 5098: 5095: 5092: 5089: 5086: 5083: 5080: 5077: 5074: 5071: 5068: 5065: 5062: 5059: 5056: 5053: 5050: 5047: 5044: 5041: 5038: 5035: 5032: 5029: 5026: 5023: 5020: 5017: 5014: 5011: 5008: 5005: 5002: 4999: 4996: 4993: 4990: 4987: 4984: 4981: 4978: 4975: 4972: 4969: 4966: 4963: 4960: 4957: 4954: 4951: 4948: 4945: 4942: 4939: 4936: 4933: 4930: 4927: 4924: 4921: 4918: 4915: 4912: 4909: 4906: 4903: 4900: 4897: 4894: 4891: 4888: 4885: 4882: 4879: 4876: 4873: 4870: 4867: 4864: 4861: 4858: 4855: 4852: 4849: 4846: 4843: 4840: 4837: 4834: 4831: 4828: 4825: 4822: 4819: 4816: 4813: 4810: 4807: 4804: 4801: 4798: 4795: 4792: 4790:// multimethods 4789: 4786: 4783: 4780: 4777: 4774: 4771: 4768: 4765: 4762: 4759: 4756: 4753: 4751:// data members 4750: 4747: 4744: 4741: 4738: 4735: 4733:// data members 4732: 4729: 4726: 4723: 4720: 4717: 4714: 4711: 4708: 4705: 4703:<stdio.h> 4702: 4699: 4692: 4691: 4688: 4685: 4682: 4679: 4677:THING_SPACESHIP 4676: 4673: 4670: 4667: 4664: 4661: 4658: 4655: 4652: 4649: 4646: 4643: 4640: 4637: 4634: 4631: 4628: 4625: 4622: 4619: 4616: 4613: 4610: 4607: 4604: 4601: 4598: 4595: 4592: 4589: 4586: 4583: 4580: 4577: 4574: 4571: 4568: 4565: 4562: 4559: 4556: 4553: 4550: 4547: 4544: 4541: 4538: 4535: 4532: 4530:THING_SPACESHIP 4529: 4526: 4523: 4520: 4517: 4514: 4511: 4508: 4505: 4502: 4499: 4496: 4493: 4490: 4487: 4484: 4481: 4478: 4475: 4472: 4469: 4466: 4463: 4460: 4457: 4454: 4451: 4448: 4445: 4442: 4439: 4436: 4433: 4430: 4427: 4424: 4421: 4418: 4415: 4412: 4409: 4406: 4403: 4400: 4397: 4394: 4391: 4388: 4374: 4369: 4364: 4363: 4360: 4357: 4354: 4351: 4348: 4345: 4342: 4339: 4336: 4333: 4330: 4327: 4324: 4321: 4318: 4315: 4312: 4309: 4306: 4303: 4300: 4297: 4294: 4291: 4288: 4285: 4282: 4279: 4276: 4273: 4270: 4267: 4264: 4241: 4240: 4237: 4234: 4231: 4228: 4225: 4222: 4219: 4216: 4213: 4210: 4207: 4204: 4201: 4198: 4195: 4192: 4189: 4186: 4183: 4180: 4177: 4174: 4171: 4168: 4165: 4162: 4159: 4156: 4153: 4150: 4147: 4130: 4129: 4126: 4123: 4120: 4117: 4114: 4111: 4108: 4105: 4104: 4101: 4098: 4095: 4092: 4089: 4086: 4083: 4080: 4077: 4074: 4071: 4068: 4065: 4062: 4059: 4056: 4053: 4050: 4047: 4044: 4041: 4038: 4035: 4032: 4029: 4026: 4023: 4020: 4017: 4014: 4011: 4008: 4005: 4002: 3999: 3996: 3993: 3990: 3987: 3984: 3981: 3978: 3975: 3972: 3969: 3966: 3963: 3960: 3957: 3954: 3951: 3948: 3945: 3942: 3939: 3936: 3933: 3930: 3927: 3924: 3921: 3918: 3915: 3912: 3909: 3906: 3903: 3900: 3897: 3894: 3891: 3881:multimethods.py 3865: 3860: 3859: 3856: 3853: 3850: 3847: 3844: 3841: 3838: 3835: 3832: 3829: 3826: 3823: 3820: 3817: 3814: 3811: 3808: 3805: 3802: 3799: 3796: 3793: 3790: 3787: 3784: 3781: 3778: 3775: 3772: 3769: 3766: 3763: 3760: 3757: 3754: 3751: 3748: 3745: 3742: 3739: 3736: 3733: 3730: 3727: 3724: 3721: 3718: 3715: 3712: 3709: 3706: 3703: 3700: 3697: 3694: 3691: 3688: 3685: 3682: 3679: 3676: 3673: 3670: 3667: 3664: 3661: 3658: 3655: 3652: 3649: 3646: 3643: 3640: 3637: 3634: 3631: 3628: 3625: 3622: 3619: 3616: 3613: 3610: 3607: 3604: 3601: 3598: 3595: 3592: 3589: 3586: 3583: 3580: 3577: 3574: 3571: 3568: 3565: 3562: 3559: 3556: 3553: 3550: 3547: 3544: 3541: 3538: 3535: 3532: 3529: 3526: 3523: 3520: 3517: 3514: 3511: 3508: 3505: 3502: 3496: 3495: 3492: 3489: 3486: 3483: 3480: 3477: 3474: 3471: 3468: 3465: 3462: 3459: 3456: 3453: 3450: 3447: 3444: 3441: 3438: 3435: 3432: 3429: 3426: 3423: 3420: 3417: 3414: 3411: 3408: 3405: 3402: 3399: 3396: 3393: 3390: 3387: 3384: 3381: 3378: 3375: 3372: 3369: 3366: 3363: 3360: 3357: 3354: 3351: 3348: 3345: 3342: 3339: 3336: 3333: 3330: 3327: 3324: 3321: 3318: 3315: 3312: 3309: 3306: 3303: 3286: 3281: 3276: 3275: 3271: 3267: 3263: 3259: 3255: 3251: 3247: 3243: 3240: 3236: 3232: 3228: 3224: 3220: 3217: 3213: 3209: 3205: 3201: 3197: 3194: 3190: 3186: 3182: 3178: 3174: 3171: 3167: 3163: 3159: 3155: 3151: 3148: 3144: 3140: 3136: 3132: 3128: 3124: 3121: 3118: 3114: 3111: 3107: 3103: 3099: 3095: 3091: 3087: 3083: 3080: 3077: 3074: 3071: 3067: 3063: 3059: 3055: 3051: 3048: 3044: 3040: 3036: 3032: 3028: 3024: 3020: 3016: 3012: 3008: 3005: 3002: 2999: 2995: 2992: 2988: 2985: 2982: 2979: 2976: 2973: 2969: 2966: 2962: 2958: 2954: 2950: 2946: 2942: 2938: 2934: 2931: 2927: 2923: 2919: 2916: 2913: 2910: 2907: 2904: 2900: 2896: 2893: 2890: 2886: 2882: 2879: 2876: 2872: 2868: 2865: 2862: 2858: 2855: 2851: 2847: 2844: 2841: 2837: 2833: 2830: 2827: 2824: 2821: 2818: 2814: 2810: 2806: 2803: 2800: 2797: 2794: 2790: 2786: 2782: 2778: 2774: 2771: 2767: 2764: 2760: 2757: 2754: 2750: 2746: 2742: 2738: 2734: 2731: 2727: 2724: 2720: 2717: 2714: 2710: 2706: 2702: 2698: 2694: 2691: 2687: 2684: 2680: 2677: 2674: 2670: 2666: 2662: 2658: 2654: 2651: 2647: 2644: 2640: 2637: 2634: 2631: 2628: 2625: 2622: 2618: 2615: 2612: 2608: 2605: 2602: 2598: 2595: 2592: 2588: 2585: 2582: 2578: 2574: 2571: 2568: 2564: 2561: 2558: 2555: 2551: 2547: 2544: 2540: 2537: 2534: 2531: 2527: 2524: 2520: 2517: 2513: 2510: 2507: 2504: 2501: 2497: 2494: 2490: 2486: 2483: 2480: 2477: 2474: 2471: 2452: 2447: 2446: 2444:"s/s" 2443: 2440: 2437: 2434: 2431: 2428: 2425: 2422: 2419: 2416: 2413: 2410: 2408:"a/s" 2407: 2404: 2401: 2398: 2395: 2392: 2389: 2386: 2383: 2380: 2377: 2374: 2371: 2368: 2365: 2362: 2359: 2356: 2353: 2350: 2347: 2344: 2341: 2338: 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: 2230:"a/a" 2229: 2226: 2223: 2220: 2217: 2214: 2211: 2208: 2205: 2202: 2200:"s/s" 2199: 2196: 2193: 2190: 2187: 2184: 2181: 2178: 2175: 2172: 2170:"s/a" 2169: 2166: 2163: 2160: 2157: 2154: 2151: 2148: 2145: 2142: 2140:"a/s" 2139: 2136: 2133: 2130: 2127: 2124: 2121: 2118: 2115: 2112: 2109: 2106: 2103: 2100: 2097: 2094: 2091: 2088: 2085: 2082: 2079: 2076: 2073: 2070: 2067: 2064: 2061: 2058: 2055: 2052: 2043: 2023: 2022: 2019: 2016: 2013: 2010: 2007: 2004: 2001: 1998: 1995: 1992: 1989: 1986: 1983: 1980: 1977: 1974: 1971: 1968: 1965: 1962: 1959: 1956: 1953: 1950: 1947: 1944: 1941: 1938: 1935: 1932: 1929: 1926: 1923: 1920: 1917: 1914: 1911: 1908: 1905: 1902: 1899: 1896: 1893: 1890: 1887: 1884: 1881: 1878: 1875: 1872: 1869: 1866: 1856: 1851: 1850: 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: 1752:"s/s" 1751: 1748: 1745: 1742: 1739: 1736: 1733: 1730: 1727: 1724: 1721: 1718: 1715: 1712: 1710:"s/a" 1709: 1706: 1703: 1700: 1697: 1694: 1691: 1688: 1685: 1682: 1679: 1676: 1673: 1670: 1668:"a/s" 1667: 1664: 1661: 1658: 1655: 1652: 1649: 1646: 1643: 1640: 1637: 1634: 1631: 1628: 1626:"a/a" 1625: 1622: 1619: 1616: 1613: 1610: 1607: 1604: 1601: 1598: 1595: 1592: 1589: 1586: 1583: 1580: 1577: 1574: 1571: 1568: 1565: 1562: 1559: 1556: 1553: 1550: 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: 1269: 1264: 1263: 1260: 1257: 1254: 1248: 1247: 1244: 1241: 1238: 1235: 1232: 1229: 1226: 1223: 1220: 1217: 1214: 1211: 1208: 1205: 1202: 1199: 1196: 1193: 1190: 1187: 1184: 1181: 1178: 1175: 1172: 1169: 1166: 1163: 1160: 1157: 1154: 1152:"s/s" 1151: 1148: 1145: 1142: 1139: 1136: 1133: 1130: 1127: 1124: 1121: 1118: 1115: 1112: 1110:"s/a" 1109: 1106: 1103: 1100: 1097: 1094: 1091: 1088: 1085: 1082: 1079: 1076: 1073: 1070: 1068:"a/s" 1067: 1064: 1061: 1058: 1055: 1052: 1049: 1046: 1043: 1040: 1037: 1034: 1031: 1028: 1026:"a/a" 1025: 1022: 1019: 1016: 1013: 1010: 1007: 1004: 1001: 998: 995: 992: 989: 986: 984:ColliderLibrary 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: 726:ColliderLibrary 725: 722: 719: 699: 694: 685: 669: 466: 462: 458: 424: 422:Use in practice 408: 379: 343: 334: 299: 262:sparrow.sound() 261: 257: 253: 230:single-dispatch 199: 187:single-dispatch 148: 106:Double dispatch 28: 23: 22: 15: 12: 11: 5: 9869: 9859: 9858: 9853: 9839: 9838: 9820: 9804: 9803:External links 9801: 9798: 9797: 9783: 9763: 9742: 9722: 9702: 9682: 9659: 9639: 9619: 9599: 9579: 9559: 9528: 9508: 9501: 9479: 9459: 9439: 9419: 9389: 9377: 9370: 9344: 9332: 9326:. 2007-03-11. 9312: 9292: 9267: 9242: 9217: 9203: 9184: 9162: 9150: 9139: 9119: 9099: 9079: 9062:(3): 221–242. 9042: 9013:(3): 431–447. 8997: 8990: 8970: 8957:(1): 115–135. 8937: 8883: 8868: 8819: 8812: 8791: 8790: 8788: 8785: 8784: 8783: 8776: 8773: 8772: 8771: 8761: 8751: 8733: 8723: 8712:PyMultimethods 8693: 8683: 8673: 8663: 8653: 8643: 8625: 8615: 8605: 8592: 8591:Via extensions 8589: 8588: 8587: 8582: 8576: 8567: 8562: 8557: 8552: 8547: 8541: 8536: 8531: 8526: 8516: 8511: 8501: 8496: 8491: 8484: 8481: 8480: 8479: 8472: 8469: 8467: 8464: 8106: 8089: 8086: 8070:DiagonalMatrix 7953:DiagonalMatrix 7944:DiagonalMatrix 7611:// Declaration 7609: 7595: 7592: 7306:update_methods 6961:declare_method 6859:<memory> 6848: 6399:collisionCases 6027:collisionCases 5979:collisionCases 5934:collisionCases 5787:collisionCases 5566: 5193: 5175: 5172: 4698: 4683:THING_ASTEROID 4644:collisionCases 4554:collisionCases 4518:THING_ASTEROID 4387: 4373: 4370: 4368: 4365: 4263: 4146: 4107: 3925:game_behaviors 3890: 3877:multimethod.py 3864: 3861: 3501: 3302: 3285: 3282: 3280: 3277: 2565:Stellar-Object 2541:Stellar-Object 2498:Stellar-Object 2470: 2451: 2448: 2337: 2051: 2042: 2039: 1865: 1855: 1852: 1285: 1268: 1265: 1253: 718: 698: 695: 693: 690: 684: 681: 668: 665: 662: 661: 658: 655: 652: 648: 647: 644: 641: 638: 634: 633: 630: 627: 624: 620: 619: 616: 613: 610: 604: 603: 600: 597: 594: 590: 589: 586: 583: 580: 573: 572: 569: 566: 563: 559: 558: 555: 552: 549: 541: 540: 537: 534: 531: 523: 522: 519: 516: 513: 502: 501: 498: 495: 492: 486: 485: 482: 479: 476: 423: 420: 407: 404: 403: 402: 398: 394: 378: 375: 374: 373: 369: 366: 356:The so-called 342: 339: 333: 330: 298: 295: 271:argument that 198: 195: 150: 149: 147: 146: 139: 132: 124: 121: 120: 119: 118: 113: 108: 103: 98: 90: 89: 83: 82: 81: 80: 75: 67: 66: 60: 59: 58: 57: 52: 44: 43: 37: 36: 26: 9: 6: 4: 3: 2: 9868: 9857: 9854: 9852: 9849: 9848: 9846: 9829: 9825: 9821: 9814: 9813: 9807: 9806: 9793: 9787: 9773: 9767: 9752: 9746: 9732: 9726: 9712: 9706: 9692: 9686: 9669: 9663: 9649: 9643: 9629: 9623: 9609: 9603: 9589: 9583: 9569: 9563: 9549:on 2013-01-20 9545: 9538: 9532: 9518: 9512: 9504: 9498: 9494: 9490: 9483: 9469: 9463: 9449: 9443: 9429: 9423: 9407: 9403: 9399: 9393: 9386: 9381: 9373: 9367: 9363: 9359: 9355: 9348: 9341: 9336: 9329: 9322: 9316: 9309:. 2019-02-19. 9308: 9307: 9302: 9296: 9281: 9280:Read the docs 9277: 9271: 9256: 9252: 9251:"PyProtocols" 9246: 9231: 9227: 9221: 9213: 9207: 9200: 9196: 9193: 9188: 9175: 9174: 9170:Coady, Aric, 9166: 9159: 9154: 9148: 9143: 9129: 9123: 9109: 9103: 9089: 9083: 9069: 9065: 9061: 9057: 9053: 9046: 9038: 9034: 9030: 9026: 9021: 9016: 9012: 9008: 9001: 8993: 8987: 8983: 8982: 8974: 8965: 8960: 8956: 8952: 8948: 8941: 8933: 8929: 8925: 8921: 8916: 8911: 8907: 8903: 8896: 8894: 8892: 8890: 8888: 8879: 8875: 8871: 8869:9781605582153 8865: 8861: 8857: 8853: 8852: 8844: 8842: 8840: 8838: 8836: 8834: 8832: 8830: 8828: 8826: 8824: 8815: 8813:9783642148248 8809: 8805: 8804: 8796: 8792: 8782: 8779: 8778: 8769: 8766:(via package 8765: 8762: 8759: 8755: 8752: 8749: 8745: 8741: 8737: 8734: 8731: 8727: 8724: 8721: 8720:plum-dispatch 8717: 8713: 8709: 8705: 8701: 8697: 8694: 8691: 8687: 8684: 8681: 8678:(via package 8677: 8674: 8671: 8667: 8664: 8661: 8657: 8654: 8651: 8647: 8644: 8641: 8637: 8633: 8629: 8626: 8623: 8619: 8616: 8613: 8609: 8606: 8603: 8599: 8595: 8594: 8586: 8583: 8580: 8577: 8575: 8571: 8568: 8566: 8563: 8561: 8558: 8556: 8553: 8551: 8548: 8545: 8542: 8540: 8537: 8535: 8532: 8530: 8527: 8524: 8520: 8517: 8515: 8512: 8509: 8505: 8502: 8500: 8497: 8495: 8492: 8490: 8487: 8486: 8478: 8475: 8474: 8463: 8104: 8102: 8097: 8095: 7607: 7605: 7601: 7591: 7589: 7584: 7228:define_method 7174:define_method 7120:define_method 7066:define_method 7012:define_method 6846: 6843: 6839: 6835: 6833: 5703:unordered_map 5564: 5191: 5189: 5185: 5181: 4696: 4551:CollisionCase 4401:CollisionCase 4385: 4383: 4380: 4261: 4259: 4258:plum-dispatch 4255: 4250: 4247: 4244: 4144: 4142: 4138: 4133: 4109:# ...later... 3888: 3886: 3882: 3878: 3874: 3870: 3499: 3300: 3297: 3295: 3291: 2468: 2466: 2461: 2458: 2456: 2335: 2049: 2047: 2038: 2036: 2031: 2026: 1863: 1861: 1283: 1281: 1277: 1273: 1251: 716: 713: 711: 706: 703: 689: 680: 678: 674: 659: 656: 653: 650: 649: 645: 642: 639: 636: 635: 631: 628: 625: 622: 621: 617: 614: 611: 609: 606: 605: 601: 598: 595: 592: 591: 587: 584: 581: 578: 575: 574: 570: 567: 564: 561: 560: 556: 553: 550: 547: 544:Common Lisp ( 543: 542: 538: 535: 532: 529: 526:Common Lisp ( 525: 524: 520: 517: 514: 511: 507: 504: 503: 499: 496: 493: 491: 488: 487: 483: 480: 477: 474: 473: 470: 455: 453: 449: 445: 440: 438: 434: 430: 419: 416: 414: 399: 395: 392: 391: 390: 387: 385: 370: 367: 364: 363: 362: 359: 354: 352: 348: 338: 329: 325: 323: 319: 314: 312: 308: 304: 294: 292: 287: 285: 281: 276: 274: 270: 265: 251: 247: 243: 239: 235: 231: 226: 222: 220: 216: 212: 208: 204: 194: 191: 188: 184: 180: 177:based on the 176: 172: 168: 164: 160: 156: 145: 140: 138: 133: 131: 126: 125: 123: 122: 117: 114: 112: 109: 107: 104: 102: 99: 97: 94: 93: 92: 91: 88: 85: 84: 79: 76: 74: 71: 70: 69: 68: 65: 62: 61: 56: 53: 51: 48: 47: 46: 45: 42: 39: 38: 35: 32: 31: 19: 9831:. Retrieved 9827: 9811: 9786: 9775:. Retrieved 9766: 9755:. Retrieved 9745: 9734:. Retrieved 9725: 9714:. Retrieved 9705: 9694:. Retrieved 9685: 9674:. Retrieved 9662: 9651:. Retrieved 9648:"Perl 6 FAQ" 9642: 9631:. Retrieved 9622: 9611:. Retrieved 9602: 9591:. Retrieved 9582: 9571:. Retrieved 9562: 9551:. Retrieved 9544:the original 9531: 9520:. Retrieved 9511: 9492: 9482: 9471:. Retrieved 9462: 9451:. Retrieved 9442: 9431:. Retrieved 9422: 9410:. Retrieved 9406:the original 9401: 9392: 9380: 9353: 9347: 9335: 9327: 9315: 9304: 9295: 9283:. Retrieved 9279: 9270: 9258:. Retrieved 9254: 9245: 9233:. Retrieved 9229: 9220: 9206: 9187: 9177:, retrieved 9172: 9165: 9153: 9142: 9131:. Retrieved 9122: 9111:. Retrieved 9102: 9091:. Retrieved 9082: 9071:. Retrieved 9059: 9055: 9045: 9010: 9006: 9000: 8980: 8973: 8954: 8950: 8940: 8908:(1): 65–98. 8905: 8901: 8850: 8806:. Springer. 8802: 8795: 8704:RuleDispatch 8636:multimethods 8523:cl-defmethod 8457: 8098: 8091: 7603: 7597: 7582: 7580: 6844: 6840: 6836: 6831: 6829: 5562: 5510:dynamic_cast 5459:dynamic_cast 5354:dynamic_cast 5303:dynamic_cast 5178:As of 2021, 5177: 5126:collide_with 5090:collide_with 5054:collide_with 5018:collide_with 4913:collide_with 4877:collide_with 4841:collide_with 4805:collide_with 4772:collide_with 4693: 4599:collision_SS 4590:collision_SA 4578:collision_AS 4569:collision_AA 4488:collision_SS 4464:collision_SA 4440:collision_AS 4416:collision_AA 4382:branch table 4375: 4251: 4248: 4245: 4242: 4193:@multimethod 4148:@multimethod 4134: 4131: 3907:game_objects 3895:multimethods 3880: 3876: 3866: 3497: 3298: 3293: 3287: 3221:$ Enterprise 3198:$ Enterprise 3175:$ Enterprise 3168:$ Enterprise 3125:$ Enterprise 2464: 2462: 2459: 2453: 2333: 2314:collide_with 2203:collide_with 2173:collide_with 2143:collide_with 2113:collide_with 2044: 2030:collide-with 2029: 2027: 2024: 1990:collide-with 1951:collide-with 1912:collide-with 1873:collide-with 1857: 1270: 1249: 714: 707: 700: 686: 673:late binding 670: 456: 441: 425: 417: 409: 388: 380: 355: 351:main package 350: 346: 344: 335: 326: 322:multimethods 321: 318:late binding 315: 313:a function. 307:compile time 300: 288: 277: 272: 268: 266: 258:lion.sound() 249: 241: 233: 227: 223: 218: 214: 210: 200: 190:polymorphism 159:multimethods 158: 154: 153: 110: 34:Polymorphism 9385:openmethods 8902:SIAM Review 8650:openmethods 8504:Common Lisp 8426:collideWith 8393:collideWith 8372:collideWith 8351:Collideable 8342:collideWith 8330:Collideable 8291:collideWith 8258:collideWith 8237:collideWith 8216:Collideable 8207:collideWith 8195:Collideable 8165:collideWith 8144:collideWith 8129:Collideable 8120:collideWith 8111:Collideable 7803:DenseMatrix 7671:DenseMatrix 7662:DenseMatrix 7604:openmethods 7540:collideWith 7513:collideWith 7486:collideWith 7459:collideWith 7441:make_unique 7414:make_unique 7369:make_unique 7342:make_unique 7240:collideWith 7186:collideWith 7132:collideWith 7078:collideWith 7024:collideWith 6973:collideWith 6813:collideWith 6795:collideWith 6777:collideWith 6759:collideWith 6378:// class id 5949:collideWith 5423:collideWith 5261:collideWith 5213:collideWith 4757:// generics 4536:THING_COUNT 3713:CollideWith 3707:collideWith 3554:CollideWith 3349:collideWith 2593:obliterated 2257:SpaceObject 2245:SpaceObject 2098:SpaceObject 2074:SpaceObject 2059:SpaceObject 1860:Common Lisp 1854:Common Lisp 1845:SpaceObject 1827:SpaceObject 1776:SpaceObject 1764:SpaceObject 1725:collideWith 1683:collideWith 1641:collideWith 1599:collideWith 1566:collideWith 1506:SpaceObject 1497:SpaceObject 1236:SpaceObject 1203:SpaceObject 1167:SpaceObject 1125:CollideWith 1083:CollideWith 1041:CollideWith 999:CollideWith 948:CollideWith 894:SpaceObject 885:SpaceObject 506:Common Lisp 311:overloading 207:subroutines 203:source code 165:in which a 18:Multimethod 9845:Categories 9833:2018-03-12 9777:2016-08-21 9757:2020-03-31 9736:2020-03-31 9716:2012-03-19 9696:2011-04-23 9676:2008-04-13 9653:2008-04-13 9633:2022-05-03 9613:2008-04-13 9593:2014-11-11 9573:2008-04-13 9553:2010-04-23 9522:2008-04-13 9473:2008-09-04 9453:2008-04-13 9433:2009-08-20 9179:2021-01-28 9133:2020-05-14 9113:2020-05-14 9093:2020-05-14 9073:2013-04-19 8787:References 8764:TypeScript 8756:(via e.g. 8700:PEAK-Rules 8676:JavaScript 8519:Emacs Lisp 8460:instanceof 8327:implements 8192:implements 7390:unique_ptr 7318:unique_ptr 6645:addHandler 6600:addHandler 6540:addHandler 6501:addHandler 5805:value_type 5739:addHandler 5658:// type id 4760:defgeneric 4718:// classes 4254:type hints 4137:decorators 3284:JavaScript 3110:)) ){ 3056:@destroyed 2665:<=> 2589:@destroyed 2284:&& 1536:&& 921:&& 637:MultiJava 579:(Gwydion) 546:Steel Bank 406:Efficiency 303:data types 297:Data types 256:, so that 9398:"Methods" 9015:CiteSeerX 8915:1411.1607 8670:MultiJava 8506:(via the 8458:Run time 8438:spaceship 8435:Spaceship 8324:Spaceship 8303:spaceship 8300:Spaceship 8177:spaceship 8174:Spaceship 8108:interface 7447:Spaceship 7420:Spaceship 7261:Spaceship 7249:Spaceship 7195:Spaceship 7153:Spaceship 7006:&> 6991:&> 6949:Spaceship 6919:Spaceship 6738:Spaceship 6717:initCases 6711:Spaceship 6705:initCases 6672:Spaceship 6633:Spaceship 6552:Spaceship 6483:hash_code 6477:Spaceship 6459:Spaceship 6441:hash_code 6351:initCases 6321:Spaceship 6240:Spaceship 6207:initCases 5595:protected 5516:Spaceship 5504:spaceship 5408:Spaceship 5360:Spaceship 5348:spaceship 4994:Spaceship 4934:endmethod 4925:Spaceship 4919:Spaceship 4901:defmethod 4898:endmethod 4883:Spaceship 4865:defmethod 4862:endmethod 4853:Spaceship 4829:defmethod 4826:endmethod 4793:defmethod 4745:Spaceship 4349:Spaceship 4319:@dispatch 4277:@dispatch 4205:Spaceship 4030:Spaceship 4006:Spaceship 4000:Spaceship 3976:Spaceship 3919:Spaceship 3689:Spaceship 3677:Spaceship 3644:Spaceship 3623:Spaceship 3545:Spaceship 3340:Spaceship 3225:Spaceship 3179:Spaceship 3122:Spaceship 3047:(*); 3000:Spaceship 2993:Spaceship 2965:(*); 2817:$ ) {*} 2621: »; 2611:= «  2596:destroyed 2559:Spaceship 2530:{...}; } 2432:Spaceship 2420:Spaceship 2411:julia> 2396:Spaceship 2375:julia> 2360:Spaceship 2339:julia> 2191:Spaceship 2182:Spaceship 2152:Spaceship 2131:Spaceship 2092:Spaceship 2011:spaceship 1999:spaceship 1987:defmethod 1960:spaceship 1948:defmethod 1933:spaceship 1909:defmethod 1870:defmethod 1839:Spaceship 1740:Spaceship 1731:Spaceship 1689:Spaceship 1656:Spaceship 1458:Spaceship 1443:Spaceship 1413:Spaceship 1368:Spaceship 1255:Big boom! 1218:Spaceship 1140:Spaceship 1131:Spaceship 1089:Spaceship 1056:Spaceship 864:Spaceship 849:Spaceship 834:WriteLine 816:Spaceship 786:WriteLine 768:Spaceship 738:WriteLine 475:Language 377:Ambiguity 238:Smalltalk 183:arguments 87:Subtyping 9285:26 April 9260:26 April 9235:21 March 9195:Archived 9037:15402223 8932:13026838 8775:See also 8758:TinyCLOS 8574:.Net DLR 8529:Fortress 8405:asteroid 8402:Asteroid 8270:asteroid 8267:Asteroid 8189:Asteroid 8156:asteroid 8153:Asteroid 7375:Asteroid 7348:Asteroid 7207:Asteroid 7141:Asteroid 7099:Asteroid 7087:Asteroid 6997:virtual_ 6982:virtual_ 6955:Asteroid 6898:Asteroid 6856:#include 6850:#include 6723:Asteroid 6699:Asteroid 6612:Asteroid 6573:Asteroid 6528:Asteroid 6456:uint32_t 6435:Asteroid 6417:Asteroid 6414:uint32_t 6369:uint32_t 6225:uint32_t 6177:Asteroid 6096:Asteroid 5910:<< 5898:uint64_t 5877:uint32_t 5862:uint32_t 5847:uint64_t 5766:uint32_t 5751:uint32_t 5715:uint64_t 5649:uint32_t 5613:uint32_t 5580:#include 5574:#include 5568:#include 5465:Asteroid 5453:asteroid 5309:Asteroid 5297:asteroid 5246:Asteroid 5156:grelease 5144:grelease 4973:Asteroid 4889:Asteroid 4847:Asteroid 4817:Asteroid 4811:Asteroid 4754:endclass 4739:defclass 4736:endclass 4727:Asteroid 4721:defclass 4712:#include 4706:#include 4700:#include 4337:Asteroid 4307:Asteroid 4295:Asteroid 4274:dispatch 4199:Asteroid 4160:Asteroid 4154:Asteroid 4093:Asteroid 4087:Asteroid 4081:add_rule 4036:Asteroid 4024:add_rule 3994:add_rule 3970:Asteroid 3964:add_rule 3952:Dispatch 3913:Asteroid 3901:Dispatch 3871:using a 3656:Asteroid 3611:Asteroid 3590:Asteroid 3578:Asteroid 3536:Asteroid 3331:Asteroid 3260:Asteroid 3244:Asteroid 3202:Asteroid 3152:Asteroid 3100:Asteroid 3088:Asteroid 3054:, ( 2930:) { 2894:samewith 2889:) { 2854:) { 2609:@damaged 2535:Asteroid 2514:required 2384:Asteroid 2348:Asteroid 2334:Output: 2221:Asteroid 2212:Asteroid 2161:Asteroid 2122:Asteroid 2068:Asteroid 2053:abstract 1972:asteroid 1921:asteroid 1894:asteroid 1882:asteroid 1821:Asteroid 1698:Asteroid 1647:Asteroid 1614:Asteroid 1605:Asteroid 1479:Collider 1428:Collider 1398:Asteroid 1383:Collider 1353:Asteroid 1338:Collider 1250:Output: 1185:Asteroid 1161:abstract 1098:Asteroid 1047:Asteroid 1014:Asteroid 1005:Asteroid 801:Asteroid 753:Asteroid 683:Examples 347:packages 179:run-time 167:function 9358:Bibcode 8878:7605233 8499:Clojure 7932:@method 7650:@method 7635:virtual 7623:virtual 6877:virtual 6051:handler 6021:handler 5973:handler 5829:handler 5778:handler 5694:typedef 5661:typedef 5207:virtual 4671:collide 4611:collide 4509:typedef 4389:typedef 4325:collide 4283:collide 4214:collide 4169:collide 4112:collide 4099:aa_func 4075:collide 4051:aa_func 4042:sa_func 4018:collide 4012:ss_func 3988:collide 3982:as_func 3958:collide 3946:collide 3943:sa_func 3937:ss_func 3931:as_func 3873:library 3290:library 3241:collide 3218:collide 3195:collide 3172:collide 3149:collide 3084:collide 3015:){ 2989:collide 2920:collide 2869:collide 2834:collide 2807:collide 2613:damaged 2599:mangled 2591:= < 2575:$ .name 2525:returns 2508:$ .mass 2414:collide 2378:collide 2342:collide 2233:collide 1842:extends 1824:extends 1716:private 1674:private 1632:private 1590:private 1491:collide 1434:collide 1425:println 1389:collide 1380:println 1344:collide 1335:println 1305:Program 972:dynamic 960:dynamic 879:Collide 840:Collide 828:Console 792:Collide 780:Console 744:Collide 732:Console 562:Diesel 269:special 250:special 211:calling 173:can be 9499:  9412:11 May 9368:  9306:GitHub 9035:  9017:  8988:  8930:  8876:  8866:  8810:  8754:Scheme 8726:Racket 8696:Python 8656:Factor 8570:VB.Net 8534:Groovy 8489:C# 4.0 8420:public 8387:public 8336:public 8285:public 8252:public 8201:public 8064:return 8028:length 8010:length 7995:double 7965:assert 7935:Matrix 7920:result 7917:return 7881:result 7875:length 7857:length 7845:result 7827:result 7809:result 7794:result 7761:assert 7731:assert 7653:Matrix 7641:Matrix 7629:Matrix 7614:Matrix 7567:return 6925:public 6904:public 6871:public 6471:typeid 6429:typeid 6357:static 6345:static 6315:public 6246:public 6213:static 6201:static 6171:public 6102:public 6057:second 6048:->* 5940:public 5928:static 5889:return 5838:static 5793:insert 5733:static 5405:struct 5243:struct 5198:struct 5120:" 5108:printf 5084:" 5072:printf 5048:" 5036:printf 5012:" 5000:printf 4271:import 4124:thing2 4118:thing1 3928:import 3910:import 3898:import 3885:Python 3869:Python 3863:Python 3824:method 3791:method 3758:method 3725:method 3515:method 3503:import 3460:method 3427:method 3394:method 3361:method 3316:method 3304:import 3027:) = ( 2945:) = ( 2761:infix: 2721:infix: 2681:infix: 2641:infix: 2601:>; 2567:{ 2545:method 2543:{ 2518:method 2516:; 2500:{ 2472:subset 2089:struct 2065:struct 1722:String 1719:static 1680:String 1677:static 1638:String 1635:static 1596:String 1593:static 1488:String 1485:static 1323:String 1311:static 1272:Groovy 1267:Groovy 1215:record 1182:record 1164:record 1122:string 1119:static 1116:public 1080:string 1077:static 1074:public 1038:string 1035:static 1032:public 996:string 993:static 990:public 876:string 723:static 667:Theory 629:78.06 626:28.13 615:51.44 599:43.84 585:18.27 568:31.65 554:26.57 536:15.43 528:McCLIM 497:63.30 413:vtable 397:issue. 332:Issues 219:caller 171:method 9816:(PDF) 9671:(PDF) 9547:(PDF) 9540:(PDF) 9340:yomm2 9324:(PDF) 9276:"Reg" 9033:S2CID 8928:S2CID 8910:arXiv 8874:S2CID 8728:(via 8718:, or 8698:(via 8632:yomm2 8585:Xtend 8560:Seed7 8539:Lasso 8521:(via 8514:Dylan 8494:Cecil 8477:Julia 8432:final 8399:final 8366:other 8354:other 8348:final 8321:class 8297:final 8264:final 8231:other 8219:other 8213:final 8186:class 8171:final 8150:final 8132:other 8126:final 8058:elems 8046:elems 8022:elems 7938:_plus 7911:elems 7899:elems 7887:elems 7869:elems 7851:elems 7707:const 7683:const 7656:_plus 7396:Thing 7324:Thing 7300:yomm2 7294:yorel 7267:right 7264:& 7252:& 7213:right 7210:& 7198:& 7159:right 7156:& 7144:& 7105:right 7102:& 7090:& 7051:right 7048:& 7045:Thing 7036:& 7033:Thing 7003:Thing 6988:Thing 6943:Thing 6928:Thing 6916:class 6907:Thing 6895:class 6883:Thing 6865:Thing 6862:class 6832:YOMM2 6669:& 6630:& 6570:& 6525:& 6447:const 6405:const 6393:Thing 6384:Thing 6360:const 6330:Thing 6300:other 6297:& 6294:Thing 6270:other 6267:& 6264:Thing 6249:Thing 6237:class 6216:const 6186:Thing 6156:other 6153:& 6150:Thing 6126:other 6123:& 6120:Thing 6105:Thing 6093:class 6063:other 6054:-> 6003:other 5961:other 5958:& 5955:Thing 5688:other 5685:& 5682:Thing 5670:Thing 5640:const 5601:Thing 5589:Thing 5586:class 5528:other 5525:& 5519:*> 5477:other 5474:& 5468:*> 5435:other 5432:& 5429:Thing 5414:Thing 5372:other 5369:& 5363:*> 5321:other 5318:& 5312:*> 5273:other 5270:& 5267:Thing 5252:Thing 5225:other 5222:& 5219:Thing 5201:Thing 4907:_Bool 4871:_Bool 4835:_Bool 4799:_Bool 4766:_Bool 4626:Thing 4617:Thing 4596:& 4587:& 4575:& 4566:& 4545:Thing 3845:=> 3812:=> 3779:=> 3746:=> 3719:multi 3704:const 3563:& 3560:Multi 3542:class 3533:class 3521:Multi 3509:multi 3481:=> 3448:=> 3415:=> 3382:=> 3355:multi 3346:const 3337:class 3328:class 3310:multi 3102:$ (: 3090:$ (: 3078:multi 3006:where 2983:multi 2914:multi 2885:> 2880:where 2863:multi 2850:< 2845:where 2828:multi 2801:proto 2755:multi 2745:> 2715:multi 2705:< 2675:multi 2635:multi 2556:class 2550:() { 2532:class 2489:^..^ 2484:where 2465:where 2095:<: 2071:<: 2046:Julia 2041:Julia 1836:class 1818:class 1761:class 1476:class 1302:class 1149:=> 1107:=> 1065:=> 1023:=> 981:class 903:=> 720:using 660:0.33 657:3.46 654:1.36 651:Nice 646:1.02 643:8.92 640:1.50 632:2.01 618:1.54 612:5.86 608:Julia 602:1.23 596:2.51 588:2.14 582:1.74 577:Dylan 571:0.71 565:2.07 557:1.11 551:2.37 539:1.17 533:2.32 521:1.17 518:6.34 515:2.03 500:1.06 494:2.33 490:Cecil 444:Julia 437:Cecil 433:Dylan 411:The " 284:Julia 9497:ISBN 9489:"28" 9414:2014 9366:ISBN 9287:2019 9262:2019 9237:2014 8986:ISBN 8864:ISBN 8808:ISBN 8746:and 8742:and 8736:Ruby 8686:Perl 8666:Java 8638:and 8598:.NET 8596:Any 8565:TADS 8550:Raku 8423:void 8390:void 8378:this 8339:void 8288:void 8255:void 8243:this 8204:void 8162:void 8141:void 8117:void 8094:Java 8088:Java 7989:rows 7977:rows 7791:auto 7725:cols 7701:rows 7617:plus 7453:()); 7450:> 7444:< 7426:()), 7423:> 7417:< 7399:> 7393:< 7381:()); 7378:> 7372:< 7354:()), 7351:> 7345:< 7327:> 7321:< 7285:main 7255:left 7234:void 7201:left 7180:void 7147:left 7126:void 7093:left 7072:void 7039:left 7018:void 7000:< 6985:< 6967:void 6830:The 6690:main 6588:void 6489:void 6348:void 6285:void 6255:void 6204:void 6141:void 6111:void 6075:else 6045:this 5985:find 5970:auto 5946:void 5736:void 5724:> 5706:< 5664:void 5543:else 5513:< 5501:auto 5492:else 5462:< 5450:auto 5420:void 5387:else 5357:< 5345:auto 5336:else 5306:< 5294:auto 5258:void 5210:void 4988:gnew 4967:gnew 4949:void 4943:main 4662:void 4656:main 4647:)(); 4608:void 4512:enum 4494:void 4485:void 4470:void 4461:void 4446:void 4437:void 4422:void 4413:void 4407:void 4392:void 4268:plum 4265:from 3922:from 3904:from 3892:from 3698:void 3665:void 3632:void 3599:void 3551:type 3527:from 3322:from 3274:)); 3268:mass 3258:)), 3252:mass 3239:)); 3233:mass 3216:)); 3210:mass 3193:)); 3187:mass 3166:)), 3160:mass 3147:)); 3141:name 3133:mass 3117:; } 3104:mass 3098:)), 3092:mass 3070:; } 3068:pick 3060:pick 3045:pick 3041:name 3033:name 3025:$ n2 3021:$ n1 2972:; } 2963:pick 2959:name 2951:name 2943:$ n2 2939:$ n1 2903:; } 2861:; } 2813:$ , 2791:mass 2783:mass 2777:) { 2751:mass 2743:mass 2737:) { 2711:mass 2703:mass 2697:) { 2671:mass 2663:mass 2657:) { 2581:; } 2562:does 2554:} } 2548:name 2538:does 2521:name 2505:Mass 2495:role 2481:Real 2475:Mass 2455:Raku 2450:Raku 2296:> 2293:size 2278:> 2275:size 2101:size 2077:size 2056:type 1806:size 1800:size 1794:this 1785:size 1773:size 1548:> 1545:size 1530:> 1527:size 1326:args 1317:main 1314:void 1276:Java 1242:Size 1227:Size 1209:Size 1194:Size 1176:Size 933:> 930:Size 915:> 912:Size 873:))); 825:))); 777:))); 278:The 273:owns 215:name 9064:doi 9025:doi 8959:doi 8955:117 8920:doi 8856:doi 8640:omm 8628:C++ 8544:Nim 8076:sum 8067:new 8034:sum 8004:sum 7998:sum 7800:new 7710:int 7686:int 7435:std 7408:std 7384:std 7363:std 7336:std 7312:std 7309:(); 7282:int 7009:)); 6720:(); 6708:(); 6687:int 6681:)); 6657:cid 6651:cid 6642:)); 6618:cid 6606:cid 6582:)); 6558:cid 6546:cid 6537:)); 6513:cid 6507:cid 6486:(); 6465:cid 6450:std 6444:(); 6423:cid 6408:std 6372:cid 6363:std 6354:(); 6336:cid 6228:cid 6219:std 6210:(); 6192:cid 6036:()) 6033:end 6012:)); 6009:tid 5997:tid 5991:key 5919:id2 5904:id1 5892:std 5880:id2 5871:std 5865:id1 5856:std 5850:key 5841:std 5832:)); 5823:id2 5817:id1 5811:key 5769:id2 5760:std 5754:id1 5745:std 5709:std 5697:std 5673:::* 5652:tid 5643:std 5631:cid 5625:tid 5616:cid 5607:std 5180:C++ 5174:C++ 5141:)); 5105:)); 5069:)); 5033:)); 4979:OBJ 4958:OBJ 4940:int 4653:int 4322:def 4280:def 4211:def 4166:def 4048:def 3854:}), 3821:}), 3788:}), 3755:}), 3490:}), 3457:}), 3424:}), 3391:}), 3264:new 3248:new 3229:new 3206:new 3183:new 3156:new 3139:),: 3129:new 3127:.= 3112:say 3108:$ b 3096:$ a 3081:sub 3049:say 3037:$ b 3029:$ a 3013:$ b 3011:== 3009:$ a 3003:$ b 2996:$ a 2986:sub 2967:say 2955:$ b 2947:$ a 2928:$ b 2924:$ a 2917:sub 2901:$ a 2897:$ b 2887:$ b 2883:$ a 2877:$ b 2873:$ a 2866:sub 2856:say 2852:$ b 2848:$ a 2842:$ b 2838:$ a 2831:sub 2804:sub 2787:$ b 2785:== 2779:$ a 2775:$ b 2768:$ a 2758:sub 2747:$ b 2739:$ a 2735:$ b 2728:$ a 2718:sub 2707:$ b 2699:$ a 2695:$ b 2688:$ a 2678:sub 2667:$ b 2659:$ a 2655:$ b 2648:$ a 2638:sub 2606:Str 2586:Str 2572:Str 2569:has 2528:Str 2523:() 2502:has 2493:; 2491:Inf 2426:101 2366:300 2354:101 2299:100 2281:100 2110:end 2107:Int 2086:end 2083:Int 2062:end 1782:int 1770:int 1551:100 1533:100 1455:new 1449:101 1440:new 1410:new 1395:new 1374:300 1365:new 1359:101 1350:new 1280:JVM 1261:s/s 1258:a/s 1224:int 1191:int 1173:int 936:100 918:100 861:new 855:101 846:new 813:new 798:new 774:300 765:new 759:101 750:new 510:CMU 467:DoS 305:at 246:C++ 244:in 236:in 169:or 157:or 9847:: 9826:. 9491:. 9400:. 9364:. 9303:. 9278:. 9253:. 9228:. 9058:. 9054:. 9031:. 9023:. 9011:17 9009:. 8953:. 8949:. 8926:. 8918:. 8906:59 8904:. 8886:^ 8872:. 8862:. 8822:^ 8714:, 8710:, 8706:, 8702:, 8634:, 8618:C# 8381:); 8246:); 8180:); 8159:); 8135:); 8079:); 7992:); 7980:== 7839:nc 7833:nc 7821:nr 7815:nr 7788:); 7785:nc 7776:== 7773:nc 7758:); 7755:nr 7746:== 7743:nr 7713:nc 7689:nr 7644:); 7561:); 7558:s2 7549:s1 7534:); 7531:a1 7522:s1 7507:); 7504:s1 7495:a1 7480:); 7477:a2 7468:a1 7438::: 7429:s2 7411::: 7402:s1 7387::: 7366::: 7357:a2 7339::: 7330:a1 7315::: 7303::: 7297::: 7288:() 7270:)) 7216:)) 7162:)) 7108:)) 7054:)) 6958:); 6934:}; 6913:}; 6892:}; 6889:{} 6886:() 6822:); 6819:a1 6807:s1 6804:); 6801:s2 6789:s1 6786:); 6783:s1 6771:a1 6768:); 6765:a2 6753:a1 6747:s2 6741:s1 6732:a2 6726:a1 6714::: 6702::: 6693:() 6675::: 6636::: 6615::: 6594:() 6576::: 6555::: 6531::: 6495:() 6480:). 6462::: 6453::: 6438:). 6420::: 6411::: 6396::: 6387::: 6381:}; 6366::: 6342:{} 6324:() 6234:}; 6222::: 6198:{} 6180:() 6090:}; 6066:); 6060:)( 6024:!= 6015:if 5913:32 5895::: 5874::: 5859::: 5844::: 5826:), 5802::: 5763::: 5748::: 5712::: 5700::: 5691:); 5679:)( 5646::: 5637:{} 5610::: 5558:}; 5531:)) 5495:if 5480:)) 5444:if 5402:}; 5375:)) 5339:if 5324:)) 5288:if 5240:}; 5165:); 5153:); 5117:\n 5081:\n 5045:\n 5009:\n 4997:); 4976:); 4787:); 4784:_2 4778:_1 4686:); 4605:}; 4581:}, 4506:}; 4482:}; 4458:}; 4434:}; 4410:); 4404:)( 4352:): 4310:): 4229:): 4184:): 4139:, 4096:), 4084:(( 4066:): 4039:), 4027:(( 4009:), 3997:(( 3979:), 3967:(( 3955:() 3827:(, 3794:(, 3761:(, 3728:(, 3548:{} 3539:{} 3463:(, 3430:(, 3397:(, 3364:(, 3343:{} 3334:{} 3266:(: 3256:10 3250:(: 3231:(: 3223:, 3208:(: 3200:, 3191:.1 3185:(: 3177:, 3170:; 3164:.1 3158:(: 3131:(: 3119:my 3086:( 3066:). 3062:, 3043:). 3035:, 3023:, 3017:my 2998:, 2991:( 2961:). 2953:, 2941:, 2935:my 2926:, 2922:( 2899:, 2875:, 2871:( 2840:, 2836:( 2809:( 2793:} 2770:, 2753:} 2730:, 2713:} 2690:, 2673:} 2650:, 2603:my 2583:my 2577:= 2511:is 2478:of 2441:)) 2438:10 2429:), 2405:)) 2402:10 2393:), 2390:10 2369:)) 2357:), 2254::: 2242::: 2218::: 2209::: 2188::: 2179::: 2158::: 2149::: 2128::: 2119::: 2104::: 2080::: 2037:. 2014:)) 1993:(( 1975:)) 1954:(( 1936:)) 1915:(( 1897:)) 1876:(( 1848:{} 1830:{} 1467:)) 1464:10 1452:), 1422:)) 1419:10 1407:), 1404:10 1377:)) 1362:), 1299:*/ 1287:/* 1245:); 1212:); 1179:); 975:); 969:as 957:as 870:10 858:), 822:10 810:), 807:10 762:), 702:C# 697:C# 548:) 530:) 512:) 463:CR 459:DR 454:. 435:, 431:, 324:. 240:, 9836:. 9794:. 9780:. 9760:. 9739:. 9719:. 9699:. 9679:. 9656:. 9636:. 9616:. 9596:. 9576:. 9556:. 9525:. 9505:. 9476:. 9456:. 9436:. 9416:. 9374:. 9360:: 9289:. 9264:. 9239:. 9214:. 9136:. 9116:. 9096:. 9076:. 9066:: 9060:1 9039:. 9027:: 8994:. 8967:. 8961:: 8934:. 8922:: 8912:: 8880:. 8858:: 8816:. 8770:) 8760:) 8750:) 8732:) 8722:) 8692:) 8682:) 8672:) 8662:) 8652:) 8646:D 8642:) 8624:) 8614:) 8608:C 8604:) 8555:R 8525:) 8510:) 8453:} 8450:} 8444:{ 8441:) 8429:( 8417:} 8411:{ 8408:) 8396:( 8384:} 8375:( 8369:. 8360:{ 8357:) 8345:( 8333:{ 8318:} 8315:} 8309:{ 8306:) 8294:( 8282:} 8276:{ 8273:) 8261:( 8249:} 8240:( 8234:. 8225:{ 8222:) 8210:( 8198:{ 8183:} 8168:( 8147:( 8123:( 8114:{ 8082:} 8073:( 8061:; 8055:. 8052:b 8049:+ 8043:. 8040:a 8037:= 8031:; 8025:. 8019:. 8016:a 8013:= 8007:. 8001:; 7986:. 7983:b 7974:. 7971:a 7968:( 7962:{ 7959:) 7956:b 7950:, 7947:a 7941:( 7926:} 7923:; 7914:; 7908:. 7905:b 7902:+ 7896:. 7893:a 7890:= 7884:. 7878:; 7872:. 7866:. 7863:a 7860:= 7854:. 7848:. 7842:; 7836:= 7830:. 7824:; 7818:= 7812:. 7806:; 7797:= 7782:. 7779:b 7770:. 7767:a 7764:( 7752:. 7749:b 7740:. 7737:a 7734:( 7728:; 7722:. 7719:a 7716:= 7704:; 7698:. 7695:a 7692:= 7680:{ 7677:) 7674:b 7668:, 7665:a 7659:( 7638:! 7632:, 7626:! 7620:( 7600:D 7594:D 7576:} 7573:; 7570:0 7555:* 7552:, 7546:* 7543:( 7528:* 7525:, 7519:* 7516:( 7501:* 7498:, 7492:* 7489:( 7474:* 7471:, 7465:* 7462:( 7432:( 7405:( 7360:( 7333:( 7291:{ 7279:} 7273:{ 7258:, 7246:( 7243:, 7237:, 7231:( 7225:} 7219:{ 7204:, 7192:( 7189:, 7183:, 7177:( 7171:} 7165:{ 7150:, 7138:( 7135:, 7129:, 7123:( 7117:} 7111:{ 7096:, 7084:( 7081:, 7075:, 7069:( 7063:} 7057:{ 7042:, 7030:( 7027:, 7021:, 7015:( 6994:, 6979:( 6976:, 6970:, 6964:( 6952:, 6946:, 6940:( 6931:{ 6922:: 6910:{ 6901:: 6880:~ 6874:: 6868:{ 6825:} 6816:( 6810:. 6798:( 6792:. 6780:( 6774:. 6762:( 6756:. 6750:; 6744:, 6735:; 6729:, 6696:{ 6684:} 6666:( 6660:, 6654:, 6648:( 6627:( 6621:, 6609:, 6603:( 6597:{ 6585:} 6567:( 6561:, 6549:, 6543:( 6522:( 6516:, 6510:, 6504:( 6498:{ 6474:( 6468:= 6432:( 6426:= 6402:; 6375:; 6339:) 6333:( 6327:: 6318:: 6312:} 6306:{ 6303:) 6291:( 6282:} 6276:{ 6273:) 6261:( 6252:{ 6243:: 6231:; 6195:) 6189:( 6183:: 6174:: 6168:} 6162:{ 6159:) 6147:( 6138:} 6132:{ 6129:) 6117:( 6108:{ 6099:: 6087:} 6084:} 6078:{ 6072:} 6042:( 6039:{ 6030:. 6018:( 6006:. 6000:, 5994:( 5988:( 5982:. 5976:= 5967:{ 5964:) 5952:( 5943:: 5937:; 5925:} 5922:; 5916:| 5907:) 5901:( 5886:{ 5883:) 5868:, 5853:( 5835:} 5820:, 5814:( 5808:( 5796:( 5790:. 5784:{ 5781:) 5772:, 5757:, 5742:( 5730:; 5718:, 5667:( 5655:; 5634:) 5628:( 5622:: 5619:) 5604:( 5598:: 5592:{ 5555:} 5552:} 5546:{ 5540:} 5534:{ 5522:( 5507:= 5498:( 5489:} 5483:{ 5471:( 5456:= 5447:( 5441:{ 5438:) 5426:( 5417:{ 5411:: 5399:} 5396:} 5390:{ 5384:} 5378:{ 5366:( 5351:= 5342:( 5333:} 5327:{ 5315:( 5300:= 5291:( 5279:{ 5276:) 5264:( 5255:{ 5249:: 5237:; 5234:0 5231:= 5228:) 5216:( 5204:{ 5168:} 5162:s 5159:( 5150:a 5147:( 5138:s 5135:, 5132:s 5129:( 5123:, 5111:( 5102:a 5099:, 5096:s 5093:( 5087:, 5075:( 5066:s 5063:, 5060:a 5057:( 5051:, 5039:( 5030:a 5027:, 5024:a 5021:( 5015:, 5003:( 4991:( 4985:= 4982:s 4970:( 4964:= 4961:a 4955:{ 4952:) 4946:( 4928:) 4922:, 4916:, 4910:, 4904:( 4892:) 4886:, 4880:, 4874:, 4868:( 4856:) 4850:, 4844:, 4838:, 4832:( 4820:) 4814:, 4808:, 4802:, 4796:( 4781:, 4775:, 4769:, 4763:( 4748:) 4742:( 4730:) 4724:( 4689:} 4680:, 4674:( 4668:{ 4665:) 4659:( 4650:} 4641:* 4638:( 4635:{ 4632:) 4629:b 4623:, 4620:a 4614:( 4602:} 4593:, 4584:{ 4572:, 4563:{ 4560:{ 4557:= 4548:; 4542:} 4533:, 4527:, 4524:0 4521:= 4515:{ 4500:{ 4497:) 4491:( 4476:{ 4473:) 4467:( 4452:{ 4449:) 4443:( 4428:{ 4425:) 4419:( 4398:* 4395:( 4372:C 4346:: 4343:b 4340:, 4334:: 4331:a 4328:( 4304:: 4301:b 4298:, 4292:: 4289:a 4286:( 4260:, 4226:b 4223:, 4220:a 4217:( 4208:) 4202:, 4196:( 4181:b 4178:, 4175:a 4172:( 4163:) 4157:, 4151:( 4127:) 4121:, 4115:( 4102:) 4090:, 4078:. 4063:b 4060:, 4057:a 4054:( 4045:) 4033:, 4021:. 4015:) 4003:, 3991:. 3985:) 3973:, 3961:. 3949:= 3940:, 3934:, 3916:, 3857:) 3848:{ 3842:) 3839:y 3836:, 3833:x 3830:( 3815:{ 3809:) 3806:y 3803:, 3800:x 3797:( 3782:{ 3776:) 3773:y 3770:, 3767:x 3764:( 3749:{ 3743:) 3740:y 3737:, 3734:x 3731:( 3722:( 3716:= 3710:: 3701:} 3695:: 3692:) 3686:: 3683:y 3680:, 3674:: 3671:x 3668:( 3662:: 3659:) 3653:: 3650:y 3647:, 3641:: 3638:x 3635:( 3629:: 3626:) 3620:: 3617:y 3614:, 3608:: 3605:x 3602:( 3596:: 3593:) 3587:: 3584:y 3581:, 3575:: 3572:x 3569:( 3566:{ 3557:= 3524:} 3518:, 3512:, 3506:{ 3493:) 3484:{ 3478:) 3475:y 3472:, 3469:x 3466:( 3451:{ 3445:) 3442:y 3439:, 3436:x 3433:( 3418:{ 3412:) 3409:y 3406:, 3403:x 3400:( 3385:{ 3379:) 3376:y 3373:, 3370:x 3367:( 3358:( 3352:= 3319:} 3313:, 3307:{ 3272:5 3270:( 3262:. 3254:( 3246:. 3237:1 3235:( 3227:. 3214:1 3212:( 3204:. 3189:( 3181:. 3162:( 3154:. 3143:( 3137:1 3135:( 3106:( 3094:( 3058:. 3039:. 3031:. 3019:( 2957:. 2949:. 2937:( 2789:. 2781:. 2749:. 2741:. 2709:. 2701:. 2669:. 2661:. 2487:0 2435:( 2423:( 2417:( 2399:( 2387:( 2381:( 2363:( 2351:( 2345:( 2329:) 2326:y 2323:, 2320:x 2317:( 2311:: 2305:? 2302:) 2290:. 2287:y 2272:. 2269:x 2266:( 2263:= 2260:) 2251:y 2248:, 2239:x 2236:( 2227:= 2224:) 2215:, 2206:( 2197:= 2194:) 2185:, 2176:( 2167:= 2164:) 2155:, 2146:( 2137:= 2134:) 2125:, 2116:( 2020:) 2008:y 2005:( 2002:) 1996:x 1984:( 1981:) 1969:y 1966:( 1963:) 1957:x 1945:( 1942:) 1930:y 1927:( 1924:) 1918:x 1906:( 1903:) 1891:y 1888:( 1885:) 1879:x 1867:( 1812:} 1809:} 1803:= 1797:. 1791:{ 1788:) 1779:( 1767:{ 1758:} 1755:} 1749:{ 1746:) 1743:y 1737:, 1734:x 1728:( 1713:} 1707:{ 1704:) 1701:y 1695:, 1692:x 1686:( 1671:} 1665:{ 1662:) 1659:y 1653:, 1650:x 1644:( 1629:} 1623:{ 1620:) 1617:y 1611:, 1608:x 1602:( 1587:} 1581:) 1578:y 1575:, 1572:x 1569:( 1563:: 1557:? 1554:) 1542:. 1539:y 1524:. 1521:x 1518:( 1515:{ 1512:) 1509:y 1503:, 1500:x 1494:( 1482:{ 1473:} 1470:} 1461:( 1446:( 1437:( 1431:. 1416:( 1401:( 1392:( 1386:. 1371:( 1356:( 1347:( 1341:. 1332:{ 1329:) 1320:( 1308:{ 1239:( 1233:: 1230:) 1221:( 1206:( 1200:: 1197:) 1188:( 1170:( 1158:} 1155:; 1146:) 1143:y 1137:, 1134:x 1128:( 1113:; 1104:) 1101:y 1095:, 1092:x 1086:( 1071:; 1062:) 1059:y 1053:, 1050:x 1044:( 1029:; 1020:) 1017:y 1011:, 1008:x 1002:( 987:{ 966:y 963:, 954:x 951:( 945:: 939:? 927:. 924:y 909:. 906:x 900:) 897:y 891:, 888:x 882:( 867:( 852:( 843:( 837:( 831:. 819:( 804:( 795:( 789:( 783:. 771:( 756:( 747:( 741:( 735:. 729:; 508:( 143:e 136:t 129:v 20:)

Index

Multimethod
Polymorphism
Ad hoc polymorphism
Function overloading
Operator overloading
Parametric polymorphism
Generic function
Generic programming
Subtyping
Virtual function
Single and dynamic dispatch
Double dispatch
Multiple dispatch
Predicate dispatch
v
t
e
programming languages
function
method
dynamically dispatched
run-time
arguments
single-dispatch
polymorphism
source code
subroutines
single-dispatch
Smalltalk
C++

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