User Tools


This shows you the differences between two versions of the page.

Link to this comparison view

cl:types:generic-function [2017/05/01 21:00] (current)
Line 1: Line 1:
 +====== System Class GENERIC-FUNCTION ======
 +====Class Precedence List====
 +**generic-function**,​ **[[CL:​Types:​function]]**,​ **[[CL:​Types:​t]]**
 +A //​[[CL:​Glossary:​generic function]]//​ is a //​[[CL:​Glossary:​function]]//​ whose behavior depends on the //​[[CL:​Glossary:​classes]]//​ or identities of the //​[[CL:​Glossary:​arguments]]//​ supplied to it. A generic function object contains a set of //​[[CL:​Glossary:​methods]]//,​ a //​[[CL:​Glossary:​lambda list]]//, a //​[[CL:​Glossary:​method combination]]//​ //​[[CL:​Glossary:​type]]//,​ and other information. The //​[[CL:​Glossary:​methods]]//​ define the class-specific behavior and operations of the //​[[CL:​Glossary:​generic function]]//;​ a //​[[CL:​Glossary:​method]]//​ is said to //​[[CL:​Glossary:​specialize]]//​ a //​[[CL:​Glossary:​generic function]]//​. When invoked, a //​[[CL:​Glossary:​generic function]]//​ executes a subset of its //​[[CL:​Glossary:​methods]]//​ based on the //​[[CL:​Glossary:​classes]]//​ or identities of its //​[[CL:​Glossary:​arguments]]//​.
 +A //​[[CL:​Glossary:​generic function]]//​ can be used in the same ways that an ordinary //​[[CL:​Glossary:​function]]//​ can be used; specifically,​ a //​[[CL:​Glossary:​generic function]]//​ can be used as an argument to **[[CL:​Functions:​funcall]]** and **[[CL:​Functions:​apply]]**,​ and can be given a global or a local name.