1 <html> 2 <head> 3 <title>CL Unification: Class SEQUENCE-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 SEQUENCE-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>SEQUENCE-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 SEQUENCE-TEMPLATE, TYPE-TEMPLATE, TEMPLATE, STANDARD-OBJECT, T. 47 </p> 48 49 <h2>Known Subclasses:</h2> 50 51 <p> 52 VECTOR-TEMPLATE, LIST-TEMPLATE. 53 </p> 54 55 56 <h2>Slots:</h2> 57 58 <p>None.</p> 59 60 61 <h2>Description:</h2> 62 63 <p>The SEQUENCE-TEMPLATE class denotes those object that are used 64 to unify against a SEQUENCE.</p> 65 66 <h3>Template Syntax:</h3> 67 68 <p> 69 <pre> 70 #T(<b>sequence</b> . <i><destructuring template lambda list></i>) 71 </pre> 72 </p> 73 74 <p>The SEQUENCE-TEMPLATE syntax denotes a SEQUENCE object. A 75 SEQUENCE-TEMPLATE must be unified against a SEQUENCE object. The elements 76 of the sequence must be unified against the 77 <i><destructuring template lambda list></i> 78 79 80 <h2>Examples:</h2> 81 82 <p> 83 <pre> 84 cl-prompt> (setf e (unify #(0 1 42 3 4 5) #T(<b>sequence</b> 0 1 ?x 3 4 5))) 85 #<ENVIRONMENT xxx> 86 87 cl-prompt> (find-variable-value '?x e) 88 42 89 T 90 91 cl-prompt> (setq e (unify #(0 1 42 3 4 5) #T(<b>sequence</b> 0 1 "FOO" 3 4 5))) 92 --> Error: UNIFICATION-FAILURE 93 94 cl-prompt> (setq e (unify #("foo" "bar" 42)) #T(<b>sequence</b> _ _ ?x)) 95 #<ENVIRONMENT xxx> 96 97 cl-prompt> (find-variable-value '?x e) 98 42 99 T 100 101 cl-prompt> (setq e (unify (list "foo" "bar" 42) #T(<b>sequence</b> _ &rest ?x))) 102 #<ENVIRONMENT xxx> 103 104 cl-prompt> (find-variable-value '?x e) 105 ("bar" 42) 106 107 cl-prompt> (setq e (unify "I am a string" #T(<b>sequence</b> ?I _ &rest ?x))) 108 #<ENVIRONMENT xxx> 109 110 cl-prompt> (find-variable-value '?x e) 111 "am a string" 112 T 113 114 cl-prompt> (find-variable-value '?I e) 115 #\I 116 T 117 118 cl-prompt> (setq e (unify 42 #T(<b>sequence</b> _ &rest ?x))) 119 --> Error: UNIFICATION-FAILURE 120 121 cl-prompt> (setq e (unify #("foo" ?foo 42)) #T(<b>sequence</b> _ 33 ?x)) 122 #<ENVIRONMENT xxx> 123 124 cl-prompt> (find-variable-value '?x e) 125 42 126 T 127 128 cl-prompt> (find-variable-value '?foo e) 129 33 130 T 131 </pre> 132 </p> 133 134 135 <h2>Affected By:</h2> 136 137 <p>None.</p> 138 139 140 <h2>Exceptional Situations:</h2> 141 142 <p>Unifying an SEQUENCE-TEMPLATE against a non-SEQUENCE object results in 143 an UNIFICATION-FAILURE error being signaled.</p> 144 145 146 <h2>See Also:</h2> 147 148 <p>UNIFY</p> 149 150 151 <h2>Notes:</h2> 152 153 <p>None.</p> 154 155 </td> 156 157 <!-- <td height="100%"> </td> --> 158 </tr> 159 160 <tr height="100%"> 161 <td height="100%"> </td> 162 <td valign="top" width="80%" height="100%"> 163 164 <div class="content"> 165 <div class="text" style="padding-top: 10px;"> 166 167 <h1>News</h1> 168 169 <p>News in chronological order, most recent on top. 170 </p> 171 172 <ul> 173 <li><strong>2004-10-30</strong><br> 174 Completed description. 175 </li> 176 177 </ul> 178 179 </div> 180 </div> 181 182 </td> 183 184 <td height="100%"> </td> 185 </tr> 186 187 188 189 190 <tr> 191 <td colspan="3" valign="bottom" align="right"> 192 <div class="copyright"> 193 © 2003-2004, Marco Antoniotti, all rights reserved. 194 </div> 195 </td> 196 </tr> 197 198 </table> 199 </body> 200 </html> 201 202 <!-- end of file -- expression-template-class.html -->