/ docs / html /
docs/html/sequence-template-class.html
  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%">&nbsp;</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>&lt;destructuring template lambda list&gt;</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>&lt;destructuring template lambda list&gt;</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   #&lt;ENVIRONMENT xxx&gt;
 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   #&lt;ENVIRONMENT xxx&gt;
 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   #&lt;ENVIRONMENT xxx&gt;
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   #&lt;ENVIRONMENT xxx&gt;
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   #&lt;ENVIRONMENT xxx&gt;
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%">&nbsp;</td> -->
158  </tr>
159 
160  <tr height="100%">
161   <td height="100%">&nbsp;</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%">&nbsp;</td>
185  </tr>
186 
187 
188 
189  
190  <tr>
191   <td colspan="3" valign="bottom" align="right">
192   <div class="copyright">
193   &copy; 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 -->