emacs.d/clones/lisp/www.cliki.net/pattern matching.html
2022-10-07 15:47:14 +02:00

109 lines
No EOL
6.5 KiB
HTML

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>CLiki: pattern matching</title>
<link rel="alternate" type="application/atom+xml" title="ATOM feed of edits to current article"
href="https://www.cliki.net/site/feed/article.atom?title=pattern%20matching">
<link rel="stylesheet" href="static/css/style.css">
<link rel="stylesheet" href="static/css/colorize.css">
</head>
<body>
<span class="hidden">CLiki - pattern matching</span>
<div id="content"><div id="content-area"><div id="article-title">pattern matching</div><div id="article">Libraries adding data-structure pattern matching operations to <a href="Common&#32;Lisp.html" class="internal">Common Lisp</a>.<p>We recommend <a href="trivia.html" class="internal">trivia</a> for pattern matching, that is a drop-in replacement for <a href="optima.html" class="internal">optima</a>. For unification, see <a href="unification.html" class="internal">unification</a>.<p><ul>
<li>
<a href="bind.html" class="internal">bind</a> -
Bind combines <a href="https://www.cliki.net/site/HyperSpec/Body/speope_letcm_letst.html" class="hyperspec">let*</a>, <a href="https://www.cliki.net/site/HyperSpec/Body/mac_destructuring-bind.html" class="hyperspec">destructuring-bind</a> and <a href="https://www.cliki.net/site/HyperSpec/Body/mac_multiple-value-bind.html" class="hyperspec">multiple-value-bind</a> into a single form
</li>
<li>
<a href="bpm2.html" class="internal">bpm2</a> -
bpm2 is a <a href="pattern&#32;matching.html" class="category">pattern matching</a> language originally designed for doing code transformation [ie, writing compilers]
</li>
<li>
<a href="cartesian-product-switch.html" class="internal">cartesian-product-switch</a> -
cartesian-product-switch is a macro for choosing the appropriate form to execute according to the combined results of multiple tests
</li>
<li>
<a href="cl-unification.html" class="internal">cl-unification</a> -
Provides unification (as used in Prolog) over fairly arbitrary Common Lisp objects
</li>
<li>
<a href="cl-xmlspam.html" class="internal">cl-xmlspam</a> -
XML Stream PAttern Matcher - concise, regexp-like <a href="pattern&#32;matching.html" class="category">pattern matching</a> on streaming <a href="XML.html" class="category">XML</a>
</li>
<li>
<a href="let-plus.html" class="internal">let-plus</a> -
LET+ extends <a href="https://www.cliki.net/site/HyperSpec/Body/speope_letcm_letst.html" class="hyperspec">let*</a> with destructuring forms, slot access, hash table elements and various other constructs with a consistent interface
</li>
<li>
<a href="MCPat.html" class="internal">MCPat</a> -
MCPat is a meta-circular <a href="pattern&#32;matching.html" class="category">pattern matching</a> library
</li>
<li>
<a href="screamer.html" class="internal">screamer</a> -
Screamer adds support for nondeterministic and constraint programming, including backtracking and undoable side-effects
</li>
<li>
<a href="spath.html" class="internal">spath</a> -
<a href="https://github.com/svetlyak40wt/cl-spath">SPath</a> is a library for running search queries against s-expressions, intended to match parts of them that the user needs
</li>
<li>
<a href="Toadstool.html" class="internal">Toadstool</a> -
Toadstool is a library for <a href="pattern&#32;matching.html" class="category">pattern matching</a>
</li>
<li>
<a href="Trivia.html" class="internal">Trivia</a> -
Trivial <a href="pattern&#32;matching.html" class="category">pattern matching</a> compiler
</li>
<li>
<a href="type-r.html" class="internal">type-r</a> -
The complete collection of accessor functions and patterns to access the elements in a compound type specifier
</li>
</ul><p>See also:
<ul>
<li><a href="https://www.cliki.net/EEL" class="new">EEL</a></li>
<li>
<a href="https://www.cliki.net/site/HyperSpec/Body/mac_destructuring-bind.html" class="hyperspec">destructuring-bind</a> can be used to bind variables to components of a tree, but does not provide for multiple alternative patterns.</li>
<li>
<a href="https://www.cliki.net/site/HyperSpec/Body/mac_typecasec_cm_etypecase.html" class="hyperspec">typecase</a> can be used to test structures against a pattern (type), but does not destructure.</li>
<li>
<a href="cl-phonetic.html" class="internal">cl-phonetic</a> — phonetical pattern matcher (work in progress)</li>
</ul></div></div>
<div id="footer" class="buttonbar"><ul><li><a href="pattern&#32;matching.html">Current version</a></li>
<li><a href="https://www.cliki.net/site/history?article=pattern%20matching">History</a></li>
<li><a href="https://www.cliki.net/site/backlinks?article=pattern%20matching">Backlinks</a></li><li><a href="https://www.cliki.net/site/edit-article?title=pattern%20matching&amp;from-revision=3804923992">Edit</a></li><li><a href="https://www.cliki.net/site/edit-article?create=t">Create</a></li></ul></div>
</div>
<div id="header-buttons" class="buttonbar">
<ul>
<li><a href="https://www.cliki.net/">Home</a></li>
<li><a href="https://www.cliki.net/site/recent-changes">Recent Changes</a></li>
<li><a href="CLiki.html">About</a></li>
<li><a href="Text&#32;Formatting.html">Text Formatting</a></li>
<li><a href="https://www.cliki.net/site/tools">Tools</a></li>
</ul>
<div id="search">
<form action="https://www.cliki.net/site/search">
<label for="search_query" class="hidden">Search CLiki</label>
<input type="text" name="query" id="search_query" value="" />
<input type="submit" value="search" />
</form>
</div>
</div>
<div id="pageheader">
<div id="header">
<span id="logo">CLiki</span>
<span id="slogan">the common lisp wiki</span>
<div id="login"><form method="post" action="https://www.cliki.net/site/login">
<label for="login_name" class="hidden">Account name</label>
<input type="text" name="name" id="login_name" class="login_input" />
<label for= "login_password" class="hidden">Password</label>
<input type="password" name="password" id="login_password" class="login_input" />
<input type="submit" name="login" value="login" id="login_submit" /><br />
<div id="register"><a href="https://www.cliki.net/site/register">register</a></div>
<input type="submit" name="reset-pw" value="reset password" id="reset_pw" />
</form>
</div>
</div>
</div>
</body></html>