In certain systems for
object-oriented programming
such as the
Common Lisp Object System and
Dylan, a
generic function
is an entity made up of all methods having the same name.
Generic functions correspond roughly to what
Smalltalk
calls messages; but when a generic function is called,
method dispatch occurs on the basis of all arguments,
not just a single privileged one. See under
multiple dispatch
for more.