repos
/
cl-unification
/ annotate_shade
summary
|
shortlog
|
log
|
tree
|
commit
|
commitdiff
|
headdiff
|
annotate
|
headblob
|
headfilediff
|
filehistory
normal
|
plain
|
shade
|
zebra
Initial revision
Annotate for file docs/html/matching-macro.html
2004-11-17 mantoniotti
1
<html>
22:19:54 '
2
<head>
'
3
<title>CL Unification: Macro MATCHING</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: Macro MATCHING</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>Macro</i> <strong>MATCHING</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>Syntax:</h2>
'
44
'
45
'
46
<p>
'
47
<pre>
'
48
<b>matching</b> (&key <i>errorp</i>) <clause>*</i>
'
49
=> <i>results</i>*
'
50
</pre>
'
51
</p>
'
52
'
53
<p>
'
54
<pre>
'
55
<clause> ::= <regular clause> | <default clause>
'
56
<regular clause> ::= ((<i>template</i> <i>object</i>) &body <i>forms</i>)
'
57
<default clause> ::= (t &body <i>forms</i>)
'
58
| (otherwise &body <i>forms</i>)
'
59
</pre>
'
60
</p>
'
61
'
62
<h3>Arguments and Values:</h3>
'
63
'
64
<p><i><code>template</code></i>---a <i>unification template</i>
'
65
<p><i><code>object</code></i>---an <i>object</i>
'
66
<p><i><code>substitution</code></i>---a <i>substitution</i>
'
67
<p><i><code>errorp</code></i>---a <i>generalized boolean</i>
'
68
<p><i><code>error-value</code></i>---an <i>object</i>
'
69
<p><i><code>forms</code></i>---an <i>implicit progn</i>
'
70
<p><i><code>results</code></i>---the <i>values</i> returned by <i>forms</i>
'
71
'
72
'
73
'
74
'
75
<h2>Description:</h2>
'
76
'
77
<p>MATCHING sets up a COND-like environment for multiple template matching clauses.
'
78
Each clause evaluates its forms in an environment where the variables
'
79
present in the template are bound lexically. Note that both variable
'
80
names '?FOO' and 'FOO' are bound for convenience.</p>
'
81
'
82
<p>The values returned by the MATCHING form are those of the last form in
'
83
the first clause that satisfies the match test.</p>
'
84
'
85
<p>If <i>errorp</i> is non-NIL then if none of the regular clauses matches, then
'
86
an error of type UNIFICATION-NON-EXHAUSTIVE is signalled, regardless of
'
87
any default clause. Otherwise, the default clause behaves as a
'
88
standard COND default clause. The default value of <i>errorp</i> is NIL.</p>
'
89
'
90
<h2>Affected By:</h2>
'
91
'
92
<p>None.</p>
'
93
'
94
'
95
<h2>Exceptional Situations:</h2>
'
96
'
97
<p>See above.</p>
'
98
'
99
'
100
<h2>See Also:</h2>
'
101
'
102
<p>UNIFY, UNIFICATION-FAILURE, UNIFICATION-NON-EXHAUSTIVE</p>
'
103
'
104
<h2>Notes:</h2>
'
105
'
106
<p>Note that UNIFICATION-FAILUREs
'
107
raising from the evaluation of <i>forms</i> in each clause will
'
108
<em>not</em> be caught and handled by the enclosing MATCHING block..</p>
'
109
'
110
'
111
</td>
'
112
'
113
<!-- <td height="100%"> </td> -->
'
114
</tr>
'
115
'
116
<tr height="100%">
'
117
<td height="100%"> </td>
'
118
<td valign="top" width="80%" height="100%">
'
119
'
120
<div class="content">
'
121
<div class="text" style="padding-top: 10px;">
'
122
'
123
<h1>News</h1>
'
124
'
125
<p>News in chronological order, most recent on top.
'
126
</p>
'
127
'
128
<ul>
'
129
<li><strong>2004-06-11</strong><br>
'
130
Completed description.
'
131
</li>
'
132
'
133
</ul>
'
134
'
135
</div>
'
136
</div>
'
137
'
138
</td>
'
139
'
140
<td height="100%"> </td>
'
141
</tr>
'
142
'
143
'
144
'
145
'
146
<tr>
'
147
<td colspan="3" valign="bottom" align="right">
'
148
<div class="copyright">
'
149
© 2003-2004, Marco Antoniotti, all rights reserved.
'
150
</div>
'
151
</td>
'
152
</tr>
'
153
'
154
</table>
'
155
</body>
'
156
</html>
'
157
'
158
<!-- end of file -- usci-variable.html -->