User Tools


Differences

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

Link to this comparison view

cl:functions:pprint-dispatch [2019/06/15 02:00]
cl:functions:pprint-dispatch [2019/06/18 09:00] (current)
Line 1: Line 1:
 +====== Function PPRINT-DISPATCH ======
 +
 +====Syntax====
 +  * **pprint-dispatch** //object// ''&​optional''​ //table// → //function, found-p//
 +
 +====Arguments and Values====
 + * //object// - an //​[[CL:​Glossary:​object]]//​.
 + * //table// - a //​[[CL:​Glossary:​pprint dispatch table]]//, or **[[CL:​Constant Variables:​nil]]**. The default is the //​[[CL:​Glossary:​value]]//​ of [[CL:​Variables:​star-print-pprint-dispatch-star|*print-pprint-dispatch*]].
 + * //​function//​ - a //​[[CL:​Glossary:​function designator]]//​.
 + * //found-p// - a //​[[CL:​Glossary:​generalized boolean]]//​.
 +
 +====Description====
 +Retrieves the highest priority function in //table// that is associated with a //​[[CL:​Glossary:​type specifier]]//​ that matches //object//. The function is chosen by finding all of the //​[[CL:​Glossary:​type specifier|type specifiers]]//​ in //table// that match the //object// and selecting the highest priority function associated with any of these //​[[CL:​Glossary:​type specifier|type specifiers]]//​. If there is more than one highest priority function, an arbitrary choice is made. If no //​[[CL:​Glossary:​type specifier|type specifiers]]//​ match the //object//, a function is returned that prints //object// using **[[CL:​Functions:​print-object]]**.
 +
 +The //​[[CL:​Glossary:​secondary value]]//, //​found-p//,​ is //​[[CL:​Glossary:​true]]//​ if a matching //​[[CL:​Glossary:​type specifier]]//​ was found in //table//, or //​[[CL:​Glossary:​false]]//​ otherwise.
 +
 +If //table// is **[[CL:​Constant Variables:​nil]]**,​ retrieval is done in the //​[[CL:​Glossary:​initial pprint dispatch table]]//.
 +
 +====Examples====
 +None.
 +
 +====Side Effects====
 +None.
 +
 +====Affected By====
 +The state of the //table//.
 +
 +====Exceptional Situations====
 +Should signal an error of type **[[CL:​Types:​type-error]]** if //​[[CL:​Glossary:​table]]//​ is neither a //​[[CL:​Glossary:​pprint-dispatch-table]]//​ nor **[[CL:​Constant Variables:​nil]]**.
 +
 +====See Also====
 +None.
 +
 +====Notes====
 +<​blockquote>​
 +([[CL:​Special Operators:​let]] (([[CL:​Variables:​star-print-pretty-star|*print-pretty*]] [[CL:​Constant Variables:​t]])) ​
 +  ([[CL:​Functions:​write]] object :stream s)) 
 +  ≡ ([[CL:​Functions:​funcall]] (pprint-dispatch object) s object)
 +</​blockquote>​
 +
 +\issue{PRETTY-PRINT-INTERFACE} \issue{GENERALIZE-PRETTY-PRINTER:​UNIFY}