1 <html> 2 <head> 3 <title>CL Unification: Class LIST-TEMPLATE</title> 4 <link rel="stylesheet" href="main.css"> 5 </head> 6 7 <body marginheight="0" marginwidth="0" leftmargin="0" topmargin="0" bgcolor="#ffffff"> 8 9 <table border="0" cellpadding="0" cellspacing="0" width="100%" height="100%" vspace="0" hspace="0"> 10 <tr> 11 <td colspan="3"> 12 <div class="header" 13 style="font-family:=Verdana,Arial,Helvetica; font-size: 18px; color: #41286f;"> 14 <strong><i>CL Unification: Class LIST-TEMPLATE</title></i></strong> 15 <div class="navigation"> 16 <a href="index.html" class="navigation-link">Home</a> 17 | <a href="unification-package.html" class="navigation-link">Previous</a> 18 | <a href="index.html" class="navigation-link">Next</a> 19 | <a href="downloads.html" class="navigation-link">Downloads</a> 20 | <a href="links.html" class="navigation-link">Links</a> 21 </div> 22 </div> 23 <div class="black-line"><img src="images/shim.gif" height="1" width="1"></div> 24 <div class="middle-bar"><img src="images/shim.gif" height="5" width="1"></div> 25 <div class="black-line"><img src="images/shim.gif" height="1" width="1"></div> 26 </td> 27 </tr> 28 29 <tr height="100%"> 30 <td height="100%"> </td> 31 <td valign="top" width="80%" height="100%"> 32 33 <div class="content"> 34 <div class="text" style="padding-top: 10px;"> 35 36 <h1><i>Class</i> <strong>LIST-TEMPLATE</strong></h1> 37 38 <h2>Package:</h2> 39 40 <p><code>COMMON-LISP.EXTENSIONS.DATA-AND-CONTROL-FLOW.UNIFICATION</code></p> 41 42 43 <h2>Class Precedence List:</h2> 44 45 <p> 46 LIST-TEMPLATE, SEQUENCE-TEMPLATE, TYPE-TEMPLATE, TEMPLATE, STANDARD-OBJECT, T. 47 </p> 48 49 <h2>Known Subclasses:</h2> 50 51 <p> 52 None. 53 </p> 54 55 56 <h2>Slots:</h2> 57 58 <p>None.</p> 59 60 61 <h2>Description:</h2> 62 63 <p>The LIST-TEMPLATE class denotes those object that are used 64 to unify against a LIST.</p> 65 66 67 <h3>Template Syntax:</h3> 68 69 <p> 70 <pre> 71 #T(<b>list</b> . <i><destructuring template lambda list></i>) 72 </pre> 73 </p> 74 75 <p>The LIST-TEMPLATE syntax denotes a LIST object. A 76 LIST-TEMPLATE must be unified against a LIST object. The elements 77 of the list must be unified against the 78 <i><destructuring template lambda list></i> 79 80 81 <h2>Examples:</h2> 82 83 <p> 84 <pre> 85 cl-prompt> (setf e (unify '(0 1 42 3 4 5) #T(<b>list</b> 0 1 ?x 3 4 5))) 86 #<ENVIRONMENT xxx> 87 88 cl-prompt> (find-variable-value '?x e) 89 42 90 T 91 92 cl-prompt> (setq e (unify '(0 1 42 3 4 5) #T(<b>list</b> 0 1 "FOO" 3 4 5))) 93 --> Error: UNIFICATION-FAILURE 94 95 cl-prompt> (setq e (unify '("foo" "bar" 42)) #T(<b>list</b> _ _ ?x)) 96 #<ENVIRONMENT xxx> 97 98 cl-prompt> (find-variable-value '?x e) 99 42 100 T 101 102 cl-prompt> (setq e (unify #(1 2 3) #T(<b>list</b> _ &rest ?x))) 103 --> Error: UNIFICATION-FAILURE 104 105 cl-prompt> (setq e (unify (list "foo" '?foo 42)) #T(<b>list</b> _ 33 ?x)) 106 #<ENVIRONMENT xxx> 107 108 cl-prompt> (find-variable-value '?x e) 109 42 110 T 111 112 cl-prompt> (find-variable-value '?foo e) 113 33 114 T 115 </pre> 116 </p> 117 118 119 <h2>Affected By:</h2> 120 121 <p>None.</p> 122 123 124 <h2>Exceptional Situations:</h2> 125 126 <p>Unifying a LIST-TEMPLATE against a non-LIST object results in 127 an UNIFICATION-FAILURE error being signaled.</p> 128 129 130 <h2>See Also:</h2> 131 132 <p>UNIFY</p> 133 134 135 <h2>Notes:</h2> 136 137 <p>Unifying a LIST-TEMPLATE against a non-proper or circular list has undefined behavior.</p> 138 139 <p>The LIST-TEMPLATE class is the only one that is really needed in 140 order not to implode the overall unification machinery. But, since 141 it is needed, then it is worthwhile to build the whole template 142 hierarchy.</p> 143 144 145 </td> 146 147 <!-- <td height="100%"> </td> --> 148 </tr> 149 150 <tr height="100%"> 151 <td height="100%"> </td> 152 <td valign="top" width="80%" height="100%"> 153 154 <div class="content"> 155 <div class="text" style="padding-top: 10px;"> 156 157 <h1>News</h1> 158 159 <p>News in chronological order, most recent on top. 160 </p> 161 162 <ul> 163 <li><strong>2004-10-30</strong><br> 164 Completed description. 165 </li> 166 167 </ul> 168 169 </div> 170 </div> 171 172 </td> 173 174 <td height="100%"> </td> 175 </tr> 176 177 178 179 180 <tr> 181 <td colspan="3" valign="bottom" align="right"> 182 <div class="copyright"> 183 © 2003-2004, Marco Antoniotti, all rights reserved. 184 </div> 185 </td> 186 </tr> 187 188 </table> 189 </body> 190 </html> 191 192 <!-- end of file -- expression-template-class.html -->