70 lines
No EOL
7 KiB
HTML
70 lines
No EOL
7 KiB
HTML
<!DOCTYPE html>
|
|
<html>
|
|
<head>
|
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
|
<title>CLiki: curly</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=curly">
|
|
<link rel="stylesheet" href="static/css/style.css">
|
|
<link rel="stylesheet" href="static/css/colorize.css">
|
|
</head>
|
|
|
|
<body>
|
|
<span class="hidden">CLiki - curly</span>
|
|
<div id="content"><div id="content-area"><div id="article-title">curly</div><div id="article">Curly is set of two reader macros for easy function currying and
|
|
composition. It was inspired Arc's syntax for currying, using
|
|
square brackets. Curly creates anonymous functions (lambdas) with
|
|
literal function composition instead of trying smarter approach
|
|
(like using (REDUCE #'FUNCALL ...)) so that the compiler is able to
|
|
do more optimizations.<p>Examples of Curly usage:<p><div class="code"><span class="nonparen">CURLY> '[foo]
|
|
<span class="paren1">(<span class="nonparen"><a href="https://www.cliki.net/site/HyperSpec/Body/any_lambda.html" class="symbol"><i><span class="symbol">LAMBDA</span></i></a> <span class="paren2">(<span class="nonparen"><span class="keyword">#:G2705</span></span>)</span> <span class="paren2">(<span class="nonparen">FOO <span class="keyword">#:G2705</span></span>)</span></span>)</span>
|
|
CURLY> '[foo bar]
|
|
<span class="paren1">(<span class="nonparen"><a href="https://www.cliki.net/site/HyperSpec/Body/any_lambda.html" class="symbol"><i><span class="symbol">LAMBDA</span></i></a> <span class="paren2">(<span class="nonparen"><span class="keyword">#:G2706</span></span>)</span> <span class="paren2">(<span class="nonparen">FOO BAR <span class="keyword">#:G2706</span></span>)</span></span>)</span>
|
|
CURLY> '[foo bar * baz]
|
|
<span class="paren1">(<span class="nonparen"><a href="https://www.cliki.net/site/HyperSpec/Body/any_lambda.html" class="symbol"><i><span class="symbol">LAMBDA</span></i></a> <span class="paren2">(<span class="nonparen"><span class="keyword">#:G2709</span></span>)</span> <span class="paren2">(<span class="nonparen">FOO BAR <span class="keyword">#:G2709</span> BAZ</span>)</span></span>)</span>
|
|
CURLY> '{foo bar}
|
|
<span class="paren1">(<span class="nonparen"><a href="https://www.cliki.net/site/HyperSpec/Body/any_lambda.html" class="symbol"><i><span class="symbol">LAMBDA</span></i></a> <span class="paren2">(<span class="nonparen"><span class="keyword">#:G2714</span></span>)</span> <span class="paren2">(<span class="nonparen">FOO <span class="paren3">(<span class="nonparen">BAR <span class="keyword">#:G2714</span></span>)</span></span>)</span></span>)</span>
|
|
CURLY> '{foo bar baz}
|
|
<span class="paren1">(<span class="nonparen"><a href="https://www.cliki.net/site/HyperSpec/Body/any_lambda.html" class="symbol"><i><span class="symbol">LAMBDA</span></i></a> <span class="paren2">(<span class="nonparen"><span class="keyword">#:G2715</span></span>)</span> <span class="paren2">(<span class="nonparen">FOO <span class="paren3">(<span class="nonparen">BAR <span class="paren4">(<span class="nonparen">BAZ <span class="keyword">#:G2715</span></span>)</span></span>)</span></span>)</span></span>)</span>
|
|
CURLY> '{foo <span class="paren1">(<span class="nonparen">bar 23</span>)</span> baz quux}
|
|
<span class="paren1">(<span class="nonparen"><a href="https://www.cliki.net/site/HyperSpec/Body/any_lambda.html" class="symbol"><i><span class="symbol">LAMBDA</span></i></a> <span class="paren2">(<span class="nonparen"><span class="keyword">#:G2721</span></span>)</span> <span class="paren2">(<span class="nonparen">FOO <span class="paren3">(<span class="nonparen">BAR 23 <span class="paren4">(<span class="nonparen">BAZ <span class="paren5">(<span class="nonparen">QUUX <span class="keyword">#:G2721</span></span>)</span></span>)</span></span>)</span></span>)</span></span>)</span>
|
|
CURLY> '{foo <span class="paren1">(<span class="nonparen">bar 16</span>)</span> <span class="paren1">(<span class="nonparen">baz 23 <a href="https://www.cliki.net/site/HyperSpec/Body/any_st.html" class="symbol">*</a> 42</span>)</span> quux}
|
|
<span class="paren1">(<span class="nonparen"><a href="https://www.cliki.net/site/HyperSpec/Body/any_lambda.html" class="symbol"><i><span class="symbol">LAMBDA</span></i></a> <span class="paren2">(<span class="nonparen"><span class="keyword">#:G2724</span></span>)</span> <span class="paren2">(<span class="nonparen">FOO <span class="paren3">(<span class="nonparen">BAR 16 <span class="paren4">(<span class="nonparen">BAZ 23 <span class="paren5">(<span class="nonparen">QUUX <span class="keyword">#:G2724</span></span>)</span> 42</span>)</span></span>)</span></span>)</span></span></span></span></div><p>Latest version of Curly can be obtained on its GitHub page: <a href="https://github.com/mpasternacki/curly">https://github.com/mpasternacki/curly</a><p><hr>
|
|
<a href="convenience library.html" class="category">convenience library</a></div></div>
|
|
<div id="footer" class="buttonbar"><ul><li><a href="curly.html">Current version</a></li>
|
|
<li><a href="https://www.cliki.net/site/history?article=curly">History</a></li>
|
|
<li><a href="https://www.cliki.net/site/backlinks?article=curly">Backlinks</a></li><li><a href="https://www.cliki.net/site/edit-article?title=curly&from-revision=3808968678">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 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> |