3237 lines
88 KiB
HTML
3237 lines
88 KiB
HTML
<!doctype html>
|
|
<html lang="en">
|
|
<head>
|
|
<title>The Slime 1.0 Manual</title>
|
|
<!-- 2019-11-10 So 23:51 -->
|
|
<meta charset="utf-8">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
<meta name="generator" content="Org-mode">
|
|
<meta name="author" content="Felix Brendel">
|
|
|
|
<link href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.5/css/bootstrap.min.css" rel="stylesheet">
|
|
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
|
|
<script src="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.5/js/bootstrap.min.js"></script>
|
|
<style type="text/css">
|
|
/* org mode styles on top of twbs */
|
|
|
|
html {
|
|
position: relative;
|
|
min-height: 100%;
|
|
}
|
|
|
|
body {
|
|
font-size: 18px;
|
|
margin-bottom: 105px;
|
|
}
|
|
|
|
footer {
|
|
position: absolute;
|
|
bottom: 0;
|
|
width: 100%;
|
|
height: 101px;
|
|
background-color: #f5f5f5;
|
|
}
|
|
|
|
footer > div {
|
|
padding: 10px;
|
|
}
|
|
|
|
footer p {
|
|
margin: 0 0 5px;
|
|
text-align: center;
|
|
font-size: 16px;
|
|
}
|
|
|
|
#table-of-contents {
|
|
margin-top: 20px;
|
|
margin-bottom: 20px;
|
|
}
|
|
|
|
blockquote p {
|
|
font-size: 18px;
|
|
}
|
|
|
|
pre {
|
|
font-size: 16px;
|
|
}
|
|
|
|
.footpara {
|
|
display: inline-block;
|
|
}
|
|
|
|
figcaption {
|
|
font-size: 16px;
|
|
color: #666;
|
|
font-style: italic;
|
|
padding-bottom: 15px;
|
|
}
|
|
|
|
/* from twbs docs */
|
|
|
|
.bs-docs-sidebar.affix {
|
|
position: static;
|
|
}
|
|
@media (min-width: 768px) {
|
|
.bs-docs-sidebar {
|
|
padding-left: 20px;
|
|
}
|
|
}
|
|
|
|
/* All levels of nav */
|
|
.bs-docs-sidebar .nav > li > a {
|
|
display: block;
|
|
padding: 4px 20px;
|
|
font-size: 14px;
|
|
font-weight: 500;
|
|
color: #999;
|
|
}
|
|
.bs-docs-sidebar .nav > li > a:hover,
|
|
.bs-docs-sidebar .nav > li > a:focus {
|
|
padding-left: 19px;
|
|
color: #A1283B;
|
|
text-decoration: none;
|
|
background-color: transparent;
|
|
border-left: 1px solid #A1283B;
|
|
}
|
|
.bs-docs-sidebar .nav > .active > a,
|
|
.bs-docs-sidebar .nav > .active:hover > a,
|
|
.bs-docs-sidebar .nav > .active:focus > a {
|
|
padding-left: 18px;
|
|
font-weight: bold;
|
|
color: #A1283B;
|
|
background-color: transparent;
|
|
border-left: 2px solid #A1283B;
|
|
}
|
|
|
|
/* Nav: second level (shown on .active) */
|
|
.bs-docs-sidebar .nav .nav {
|
|
display: none; /* Hide by default, but at >768px, show it */
|
|
padding-bottom: 10px;
|
|
}
|
|
.bs-docs-sidebar .nav .nav > li > a {
|
|
padding-top: 1px;
|
|
padding-bottom: 1px;
|
|
padding-left: 30px;
|
|
font-size: 12px;
|
|
font-weight: normal;
|
|
}
|
|
.bs-docs-sidebar .nav .nav > li > a:hover,
|
|
.bs-docs-sidebar .nav .nav > li > a:focus {
|
|
padding-left: 29px;
|
|
}
|
|
.bs-docs-sidebar .nav .nav > .active > a,
|
|
.bs-docs-sidebar .nav .nav > .active:hover > a,
|
|
.bs-docs-sidebar .nav .nav > .active:focus > a {
|
|
padding-left: 28px;
|
|
font-weight: 500;
|
|
}
|
|
|
|
/* Nav: third level (shown on .active) */
|
|
.bs-docs-sidebar .nav .nav .nav {
|
|
padding-bottom: 10px;
|
|
}
|
|
.bs-docs-sidebar .nav .nav .nav > li > a {
|
|
padding-top: 1px;
|
|
padding-bottom: 1px;
|
|
padding-left: 40px;
|
|
font-size: 12px;
|
|
font-weight: normal;
|
|
}
|
|
.bs-docs-sidebar .nav .nav .nav > li > a:hover,
|
|
.bs-docs-sidebar .nav .nav .nav > li > a:focus {
|
|
padding-left: 39px;
|
|
}
|
|
.bs-docs-sidebar .nav .nav .nav > .active > a,
|
|
.bs-docs-sidebar .nav .nav .nav > .active:hover > a,
|
|
.bs-docs-sidebar .nav .nav .nav > .active:focus > a {
|
|
padding-left: 38px;
|
|
font-weight: 500;
|
|
}
|
|
|
|
/* Show and affix the side nav when space allows it */
|
|
@media (min-width: 992px) {
|
|
.bs-docs-sidebar .nav > .active > ul {
|
|
display: block;
|
|
}
|
|
/* Widen the fixed sidebar */
|
|
.bs-docs-sidebar.affix,
|
|
.bs-docs-sidebar.affix-bottom {
|
|
width: 213px;
|
|
}
|
|
.bs-docs-sidebar.affix {
|
|
position: fixed; /* Undo the static from mobile first approach */
|
|
top: 20px;
|
|
}
|
|
.bs-docs-sidebar.affix-bottom {
|
|
position: absolute; /* Undo the static from mobile first approach */
|
|
}
|
|
.bs-docs-sidebar.affix .bs-docs-sidenav,.bs-docs-sidebar.affix-bottom .bs-docs-sidenav {
|
|
margin-top: 0;
|
|
margin-bottom: 0
|
|
}
|
|
}
|
|
@media (min-width: 1200px) {
|
|
/* Widen the fixed sidebar again */
|
|
.bs-docs-sidebar.affix-bottom,
|
|
.bs-docs-sidebar.affix {
|
|
width: 263px;
|
|
}
|
|
}
|
|
</style>
|
|
<script type="text/javascript">
|
|
$(function() {
|
|
'use strict';
|
|
|
|
$('.bs-docs-sidebar li').first().addClass('active');
|
|
|
|
$(document.body).scrollspy({target: '.bs-docs-sidebar'});
|
|
|
|
$('.bs-docs-sidebar').affix();
|
|
});
|
|
</script>
|
|
|
|
<script type="text/x-mathjax-config">
|
|
MathJax.Hub.Config({
|
|
displayAlign: "center",
|
|
displayIndent: "2em",
|
|
messageStyle: "none",
|
|
"HTML-CSS": {
|
|
scale: 100,
|
|
styles: {
|
|
".MathJax_Display": {
|
|
"font-size": "100%"
|
|
}
|
|
}
|
|
},
|
|
"SVG": {
|
|
scale: 100,
|
|
styles: {
|
|
".MathJax_SVG_Display": {
|
|
"font-size": "100%",
|
|
"margin-left": "-2.281em"
|
|
}
|
|
}
|
|
}
|
|
});
|
|
</script>
|
|
<script type="text/javascript" src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS_SVG"></script>
|
|
</head>
|
|
<body>
|
|
<div id="content" class="container">
|
|
<div class="row"><div class="col-md-12"><h1 class="title">The Slime 1.0 Manual</h1>
|
|
<div class="abstract">
|
|
<p>
|
|
abstract
|
|
</p>
|
|
|
|
</div>
|
|
|
|
<p>
|
|
\tableofcontents
|
|
</p>
|
|
|
|
<div id="outline-container-sec-1" class="outline-2">
|
|
<h2 id="sec-1"><span class="section-number-2">1</span> Lisp languages</h2>
|
|
<div class="outline-text-2" id="text-1">
|
|
<p>
|
|
Lisp is not one language but rather a family of programming languages. The family is devided by some
|
|
characteristics. There are Lisp-1 and Lisp-2 dialects and there is a difference between a Lisp with
|
|
lexical scoping as opposed to dynamic scoping. These differences will be explained in later
|
|
sections.
|
|
</p>
|
|
|
|
<p>
|
|
Like most Lisps, Slime is dynamically typed. That means that like in statically typed Languages
|
|
Slime has different data types, but they are associated not with variables but with the Lisp objects
|
|
themselves. Variables can be assigend Lisp objects of any internal type.
|
|
</p>
|
|
|
|
<p>
|
|
The Lisp language family is known to be highly flexible and applicable in all areas by creating
|
|
domain specific languages in Lisp itself through a powerful macro system. The central data structure
|
|
in Lisp is the list. The reason why lisp is so powerful is because the program source code itself is
|
|
represented as lists. The nested lists make up the syntax tree of the lisp program. It is therfore
|
|
computationally easy to parse lisp programs as the source code itself is already structured in the
|
|
form of the syntax tree; allowing for parsing in linear time.
|
|
</p>
|
|
|
|
<p>
|
|
The macro system in Slime works by recognizing macros at parse-time and running them, and replacing
|
|
the macro call in the program code with the return value of the macro and then checking if further
|
|
macros have to be expanded in the replaced code. Therefore the macros can be used to pre-compute
|
|
values or rewrite expressions (creating syntactic sugar) or themselves define macros.
|
|
</p>
|
|
</div>
|
|
</div>
|
|
|
|
<div id="outline-container-sec-2" class="outline-2">
|
|
<h2 id="sec-2"><span class="section-number-2">2</span> Lists</h2>
|
|
<div class="outline-text-2" id="text-2">
|
|
<p>
|
|
As mentioned in <a href="#sec-1">Lisp languages</a>, the central data structure in all Lisps is the list. Lists are
|
|
implemented as singly linked lists, made up of pairs (historically called <code>cons-cells</code>), each pair
|
|
has two slots, the <code>first</code> and the <code>rest</code> (historically <code>car</code> and <code>cdr</code>). A linked lsit ist then
|
|
constructed by the convention that the <code>first</code> field of a pair points to the first element of the
|
|
list and the <code>rest</code> field points to the rest of the list. Following this description, the list is a
|
|
recursive data structure. For the end of the list a special value <code>nil</code> is used in the <code>rest</code> field.
|
|
</p>
|
|
|
|
<p>
|
|
A helpful way to visualize lists made up of pairs is using box diagrams. A simple box diagram can be
|
|
seen in <a href="#simpleBoxDiagram">1</a>. Each rectangle is divided in two. The left part represents the <code>first</code>
|
|
field, the right part represents the <code>rest</code>. The arrows point to the values in these fields.
|
|
</p>
|
|
|
|
<p>
|
|
The diagram in <a href="#simpleBoxDiagram">1</a> shows a simple list containing the values 1, 2 and 3. The first pair
|
|
stores the number 1 its <code>first</code> field and the <code>rest</code> points to the rest of the list. The last pair
|
|
points to the special value <code>nil</code> in its <code>rest</code> to denote the end of the list.
|
|
</p>
|
|
|
|
<p>
|
|
<a href="diagrams/list123.eps">diagrams/list123.eps</a>
|
|
</p>
|
|
|
|
|
|
<p>
|
|
However the <code>rest</code> of a pair needs not to be a pair or nil, it could also point to any other value.
|
|
By doing this the list is no longer "well formed" but rather "ill formed". Ill formed lsits can be
|
|
used as an optimization when using the list for storing data. In <a href="#illFormedList">2</a> an ill formed list
|
|
can be seen, that also contains the values 1, 2 and 3 but stores them using only two pairs instead
|
|
of 3.
|
|
</p>
|
|
|
|
<p>
|
|
<a href="diagrams/list12.3.eps">diagrams/list12.3.eps</a>
|
|
</p>
|
|
</div>
|
|
|
|
<div id="outline-container-sec-2-1" class="outline-3">
|
|
<h3 id="sec-2-1"><span class="section-number-3">2.1</span> representing lists in Lisp</h3>
|
|
<div class="outline-text-3" id="text-2-1">
|
|
<p>
|
|
In Slime and in most Lisps, lists are represented using round parenthesis where <code>(</code> denotes the
|
|
start of the list and <code>)</code> denotes the end. Eeach element inside these parenthesis separated by one
|
|
or more spaces will be interpreted as an element of that list. For example the list from
|
|
<a href="#simpleBoxDiagram">1</a> would be represented as <code>(1 2 3)</code>. During parse time, the Lisp parser transforms
|
|
the parenthesised list into the pairs that are in the end stored in memory.
|
|
</p>
|
|
|
|
<p>
|
|
To also be able to represent ill formed lists in Lisp there is a special syntax using the <code>.</code> (dot
|
|
symbol). If the parser encounters a <code>.</code> inside of a list, it will treat the next element as the
|
|
<code>rest</code>. If there is no or more than one element after the <code>.</code> an parsing error will be thrown. Using
|
|
this syntax we can represent the ill formed list from <a href="#illFormedList">2</a> as <code>(1 2 . 3)</code>. We can also
|
|
write well formed lists using the dot notation if we point the rest to another list. So the well
|
|
formed list from <a href="#simpleBoxDiagram">1</a> can also be written as \[\texttt{(1 . (2 . (3)))}\]
|
|
</p>
|
|
</div>
|
|
</div>
|
|
|
|
<div id="outline-container-sec-2-2" class="outline-3">
|
|
<h3 id="sec-2-2"><span class="section-number-3">2.2</span> representing function calls in Lisp</h3>
|
|
<div class="outline-text-3" id="text-2-2">
|
|
<p>
|
|
If we tried to enter the Lisp representation of the lists like <code>(1 2 3)</code> discussed in <a href="#sec-2-1">representing lists in Lisp</a> directly into an Lisp interpreter we would get an error. That doesn't mean that the
|
|
explanation given in the section is wrong, it is in fact correct: the lisp parser will transform the
|
|
lisp syntax into the pairs in memory. The reason we would get an error is, that when reading Lisp
|
|
code, the Lisp interpreter first parses the code and then tries to evaluate it and return the result
|
|
back to the user.
|
|
</p>
|
|
|
|
<p>
|
|
In Lisp by default, a list corresponds to a function call. As mentioned in <a href="#sec-1">Lisp languages</a> Lisp
|
|
represents lists and Lisp programms as lists. If a list is treated as a function call, the first
|
|
element will be treated as the function and the rest of the elements will be the arguments to that
|
|
function. If we would wnter <code>(1 2 3)</code> directly into the Lisp interpreter we would get an error
|
|
saying it cannot find the function <code>1</code>.
|
|
</p>
|
|
|
|
<p>
|
|
If we would want to compute the sum of the numbers 5 and 3 we could do this by invoking the <code>+</code>
|
|
function with 5 and 3 as its arguments. <code>(+ 5 3)</code> will evaluate to 8. We can also nest functions
|
|
calls and use the return values as parameters to other functions: <code>(+ (- 12 4) (/ 24 4))</code> will
|
|
evaluate to 14. The box diagramm showing the internal structure of that computation can be seen in
|
|
<a href="#moreComplexBoxDiagram">3</a>.
|
|
</p>
|
|
|
|
<p>
|
|
<a href="diagrams/simpleMath.eps">diagrams/simpleMath.eps</a>
|
|
</p>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div id="outline-container-sec-3" class="outline-2">
|
|
<h2 id="sec-3"><span class="section-number-2">3</span> Evaluation order</h2>
|
|
<div class="outline-text-2" id="text-3">
|
|
<p>
|
|
As a first step of evaluation of a regular function, all its arguments are getting evaluated, and
|
|
then the function is applied to the evaluated arguments. For example when evaluating the nested
|
|
expression in <a href="#code:complex-math">1</a> the outermost function is the <code>+</code> function with three arguments: <code>(*
|
|
3 4)</code>, <code>(- 100 (+ 12 13 14 15))</code> and <code>2</code>. So before the outhermost <code>+</code> gets invoked, the three
|
|
arguments are getting evaluated recursively.
|
|
</p>
|
|
|
|
<div class="org-src-container">
|
|
<label class="org-src-name">A more complex nested arithmetic expression. Nested expressions can be written more readable by aligning subsequent arguments vertically underneeth each other</label>
|
|
<pre class="src src-slime" id="code:complex-math"><span style="color: #ff8c00;">(</span><span style="color: #859900;">print</span> <span style="color: #ff1493;">(</span><span style="color: #859900;">+</span> <span style="color: #7fff00;">(</span><span style="color: #859900;">*</span> 3 4<span style="color: #7fff00;">)</span>
|
|
<span style="color: #7fff00;">(</span><span style="color: #859900;">-</span> 100 <span style="color: #00bfff;">(</span><span style="color: #859900;">+</span> 12 13 14 15<span style="color: #00bfff;">)</span><span style="color: #7fff00;">)</span>
|
|
2<span style="color: #ff1493;">)</span><span style="color: #ff8c00;">)</span>
|
|
</pre>
|
|
</div>
|
|
|
|
<pre class="example">
|
|
evaluates to =>
|
|
60
|
|
|
|
</pre>
|
|
</div>
|
|
|
|
<div id="outline-container-sec-3-1" class="outline-3">
|
|
<h3 id="sec-3-1"><span class="section-number-3">3.1</span> Special forms</h3>
|
|
<div class="outline-text-3" id="text-3-1">
|
|
<p>
|
|
The given evaluation rule – to evaluate all the arguments first and then allpying them to the
|
|
funciton – as described in <a href="#sec-3">Evaluation order</a> is only valid for regular functions. There is a class
|
|
of functions that do not follow this evaluation rule called <b>special forms</b>. Special forms are
|
|
needed when you do not wish to evaluate all arguments. For example the built-in <code>if</code> function should
|
|
only evaluate the "then-expression" if the condition evaluates to a truthy value and not otherwise.
|
|
Consider the example in <a href="#code:special-forms">2</a>. The if expression only evaluates the then-expression. If
|
|
the <code>if</code> function would follow the evaluation order of regular functions, first all three arguments
|
|
<code>(< 1 2)</code>, <code>(print "I knew it!!\n")</code> but also <code>(print "Oh, it is not?!\n")</code> could get evaluated and
|
|
so both messages would be printed. In the given <code>if</code> expression, the condition evaluates to a truthy
|
|
value and only <code>I knew it!!</code> will be printed.
|
|
</p>
|
|
|
|
<div class="org-src-container">
|
|
<label class="org-src-name">The <code>if</code> function is a special form because it does not evaluate all of its arguments</label>
|
|
<pre class="src src-slime" id="code:special-forms"><span style="color: #ff8c00;">(</span><span style="color: #859900;">if</span> <span style="color: #ff1493;">(</span><span style="color: #859900;"><</span> 1 2<span style="color: #ff1493;">)</span>
|
|
<span style="color: #ff1493;">(</span><span style="color: #859900;">print</span> <span style="color: #2aa198;">"I knew it!!\n"</span><span style="color: #ff1493;">)</span>
|
|
<span style="color: #ff1493;">(</span><span style="color: #859900;">print</span> <span style="color: #2aa198;">"Oh, it is not?!\n"</span><span style="color: #ff1493;">)</span><span style="color: #ff8c00;">)</span>
|
|
</pre>
|
|
</div>
|
|
|
|
<pre class="example">
|
|
evaluates to =>
|
|
I knew it!!
|
|
|
|
</pre>
|
|
|
|
<p>
|
|
The programmer can also define their own special forms using <code>special-lambda</code> and macros, which will
|
|
be explained in <a href="#sec-6-1">Special lambdas</a> and <a href="#sec-9">Macros</a>.
|
|
</p>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div id="outline-container-sec-4" class="outline-2">
|
|
<h2 id="sec-4"><span class="section-number-2">4</span> Symbols and keywords</h2>
|
|
</div>
|
|
<div id="outline-container-sec-5" class="outline-2">
|
|
<h2 id="sec-5"><span class="section-number-2">5</span> Truthyness</h2>
|
|
</div>
|
|
<div id="outline-container-sec-6" class="outline-2">
|
|
<h2 id="sec-6"><span class="section-number-2">6</span> Lambdas</h2>
|
|
<div class="outline-text-2" id="text-6">
|
|
<p>
|
|
Slime allows for creating anonymous functions called <b>lambdas</b>. We did not talk about binding
|
|
variables, we will do this in <a href="#sec-7">Define</a>, but we can still use lambdas now. Remember that Lisp
|
|
interpretes the first argument of a list in the source code as a function and the rest as the
|
|
arguments. The <code>lambda</code> special form evaluates to a <b>regular function object</b> that can then stand in
|
|
the first position of the function call list. The basic syntax for the lambda special form is:
|
|
\[\texttt{(lambda (arg1 arg2 ...) (body1) ...)}\] the first arguemnt to <code>lambda</code> is a list of the
|
|
arguments. All the following arguments will be the body of the lambda. They will be executed when
|
|
the lambda is invoked. The return value of a lambda is the value of the last evaluated expression in
|
|
the body.
|
|
</p>
|
|
|
|
<p>
|
|
Probably the simplest function to write as a lambda is the identity function. It takes one argument
|
|
and returns it. The identity lambda and a few other simple examples of lambdas can be seen in
|
|
<a href="#code:simple-lambdas">3</a>.
|
|
</p>
|
|
|
|
<div class="org-src-container">
|
|
<label class="org-src-name">Some simle lambdas</label>
|
|
<pre class="src src-slime" id="code:simple-lambdas"><span style="color: #ff8c00;">(</span>printf <span style="color: #ff1493;">(</span><span style="color: #7fff00;">(</span><span style="color: #859900;">lambda</span> <span style="color: #00bfff;">(</span>x<span style="color: #00bfff;">)</span> x<span style="color: #7fff00;">)</span> 1<span style="color: #ff1493;">)</span><span style="color: #ff8c00;">)</span>
|
|
<span style="color: #ff8c00;">(</span>printf <span style="color: #ff1493;">(</span><span style="color: #7fff00;">(</span><span style="color: #859900;">lambda</span> <span style="color: #00bfff;">(</span>x y<span style="color: #00bfff;">)</span> <span style="color: #00bfff;">(</span><span style="color: #859900;">+</span> x y<span style="color: #00bfff;">)</span><span style="color: #7fff00;">)</span> 3 5<span style="color: #ff1493;">)</span><span style="color: #ff8c00;">)</span>
|
|
<span style="color: #ff8c00;">(</span>printf <span style="color: #ff1493;">(</span><span style="color: #7fff00;">(</span><span style="color: #859900;">lambda</span> <span style="color: #00bfff;">(</span>x y z<span style="color: #00bfff;">)</span> <span style="color: #00bfff;">(</span><span style="color: #859900;">list</span> x y z<span style="color: #00bfff;">)</span><span style="color: #7fff00;">)</span> 1 2 3<span style="color: #ff1493;">)</span><span style="color: #ff8c00;">)</span>
|
|
</pre>
|
|
</div>
|
|
|
|
<pre class="example">
|
|
evaluates to =>
|
|
1
|
|
8
|
|
(1 2 3)
|
|
|
|
</pre>
|
|
|
|
<p>
|
|
Additionally Slime lambdas have the possibility to take <b>optional arguments</b> in the form of <b>keyword
|
|
arguemnts</b> as well as a <b>rest argument</b> which allows for accepting any number of arguments. Since
|
|
these concepts are most useful when the function is actually bound to a variable, they will be
|
|
introduced when we learned how to do that in <a href="#sec-7">Define</a>.
|
|
</p>
|
|
</div>
|
|
|
|
<div id="outline-container-sec-6-1" class="outline-3">
|
|
<h3 id="sec-6-1"><span class="section-number-3">6.1</span> Special lambdas</h3>
|
|
<div class="outline-text-3" id="text-6-1">
|
|
<p>
|
|
The <code>lambda</code> special form creates a function object that represents a regular function. So the basic
|
|
evaluation rules count: when the lambda is invoked all it's arguments are evaluated and then the
|
|
lambda is applied to the evaluated arguments. If this is not wanted in some rare cases, the
|
|
programmer also has the possibility to define a special form using <code>special-lambda</code>, which, when
|
|
invoked does not evaluare any argument. The programmer has to evaluate the arguments in the body
|
|
themselves using <code>eval</code>. The rest of the syntax between <code>lambda</code> and <code>special-lambda</code> are the same.
|
|
</p>
|
|
|
|
<div class="org-src-container">
|
|
<label class="org-src-name">Special lambdas do not evaluate their arguments</label>
|
|
<pre class="src src-slime" id="code:special-lambdas"><span style="color: #ff8c00;">(</span><span style="color: #ff1493;">(</span><span style="color: #859900;">lambda</span> <span style="color: #7fff00;">(</span>x<span style="color: #7fff00;">)</span> <span style="color: #7fff00;">(</span>printf x<span style="color: #7fff00;">)</span><span style="color: #ff1493;">)</span> <span style="color: #ff1493;">(</span><span style="color: #859900;">+</span> 1 2<span style="color: #ff1493;">)</span><span style="color: #ff8c00;">)</span>
|
|
<span style="color: #ff8c00;">(</span><span style="color: #ff1493;">(</span><span style="color: #859900;">special-lambda</span> <span style="color: #7fff00;">(</span>x<span style="color: #7fff00;">)</span> <span style="color: #7fff00;">(</span>printf x<span style="color: #7fff00;">)</span><span style="color: #ff1493;">)</span> <span style="color: #ff1493;">(</span><span style="color: #859900;">+</span> 1 2<span style="color: #ff1493;">)</span><span style="color: #ff8c00;">)</span>
|
|
|
|
<span style="color: #46BA3C; font-style: italic;">;; </span><span style="color: #46BA3C; font-style: italic;">Special lambdas make it possible to write</span>
|
|
<span style="color: #46BA3C; font-style: italic;">;; </span><span style="color: #46BA3C; font-style: italic;">code that inspects code</span>
|
|
<span style="color: #ff8c00;">(</span><span style="color: #ff1493;">(</span><span style="color: #859900;">special-lambda</span> <span style="color: #7fff00;">(</span>expr<span style="color: #7fff00;">)</span>
|
|
<span style="color: #7fff00;">(</span>printf <span style="color: #2aa198;">"The function to be called is"</span>
|
|
<span style="color: #00bfff;">(</span><span style="color: #859900;">first</span> expr<span style="color: #00bfff;">)</span>
|
|
<span style="color: #2aa198;">"and the result is"</span>
|
|
<span style="color: #00bfff;">(</span><span style="color: #859900;">eval</span> expr<span style="color: #00bfff;">)</span><span style="color: #7fff00;">)</span><span style="color: #ff1493;">)</span>
|
|
<span style="color: #ff1493;">(</span><span style="color: #859900;">+</span> 1 2<span style="color: #ff1493;">)</span><span style="color: #ff8c00;">)</span>
|
|
</pre>
|
|
</div>
|
|
|
|
<pre class="example">
|
|
evaluates to =>
|
|
3
|
|
(+ 1 2)
|
|
The function to be called is + and the result is 3.
|
|
|
|
</pre>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div id="outline-container-sec-7" class="outline-2">
|
|
<h2 id="sec-7"><span class="section-number-2">7</span> Define</h2>
|
|
<div class="outline-text-2" id="text-7">
|
|
<p>
|
|
To assign a value to a symbol you can use the <code>define</code> built-in special form. The syntax for
|
|
<code>define</code> is: \[\texttt{(define symbol value)}\] and some usages can be seen in
|
|
<a href="#code:variable-defines">5</a>.
|
|
</p>
|
|
|
|
<div class="org-src-container">
|
|
<label class="org-src-name">Simple definition of variables</label>
|
|
<pre class="src src-slime" id="code:variable-defines"><span style="color: #ff8c00;">(</span><span style="color: #859900;">define</span> var1 1<span style="color: #ff8c00;">)</span>
|
|
<span style="color: #ff8c00;">(</span><span style="color: #859900;">define</span> var2 <span style="color: #d33682;">"Hello World"</span><span style="color: #ff8c00;">)</span>
|
|
<span style="color: #ff8c00;">(</span><span style="color: #859900;">define</span> var3 <span style="color: #ff1493;">(</span><span style="color: #859900;">+</span> 1 2<span style="color: #ff1493;">)</span><span style="color: #ff8c00;">)</span>
|
|
|
|
<span style="color: #ff8c00;">(</span>printf var1 var2 var3<span style="color: #ff8c00;">)</span>
|
|
</pre>
|
|
</div>
|
|
|
|
<pre class="example">
|
|
evaluates to =>
|
|
1 Hello World 3
|
|
|
|
</pre>
|
|
</div>
|
|
|
|
<div id="outline-container-sec-7-1" class="outline-3">
|
|
<h3 id="sec-7-1"><span class="section-number-3">7.1</span> Defining functions</h3>
|
|
<div class="outline-text-3" id="text-7-1">
|
|
<p>
|
|
In <a href="#sec-6">Lambdas</a> we learned how to create function objects using the <code>lambda</code> built-in form. Using
|
|
<code>define</code> every Lisp Object can be assigned to a symbol making no exception for the function objects.
|
|
In <a href="#code:lambda-defines">6</a> you can see what that would look like.
|
|
</p>
|
|
|
|
<div class="org-src-container">
|
|
<label class="org-src-name">Definition of functions using lambdas</label>
|
|
<pre class="src src-slime" id="code:lambda-defines"><span style="color: #ff8c00;">(</span><span style="color: #859900;">define</span> hypothenuse
|
|
<span style="color: #ff1493;">(</span><span style="color: #859900;">lambda</span> <span style="color: #7fff00;">(</span>a b<span style="color: #7fff00;">)</span>
|
|
<span style="color: #7fff00;">(</span><span style="color: #859900;">**</span> <span style="color: #00bfff;">(</span><span style="color: #859900;">+</span> <span style="color: #ffff00;">(</span><span style="color: #859900;">*</span> a a<span style="color: #ffff00;">)</span> <span style="color: #ffff00;">(</span><span style="color: #859900;">*</span> b b<span style="color: #ffff00;">)</span><span style="color: #00bfff;">)</span> 0.5<span style="color: #7fff00;">)</span><span style="color: #ff1493;">)</span><span style="color: #ff8c00;">)</span>
|
|
|
|
<span style="color: #ff8c00;">(</span>printf <span style="color: #ff1493;">(</span>hypothenuse 3 4<span style="color: #ff1493;">)</span><span style="color: #ff8c00;">)</span>
|
|
</pre>
|
|
</div>
|
|
|
|
<pre class="example">
|
|
evaluates to =>
|
|
5
|
|
|
|
</pre>
|
|
|
|
<p>
|
|
Since defining functions is so common, there is a syntactic shorthand that does not require to write
|
|
out the whole <code>lambda</code> definition. In this case the first argument to the call to <code>define</code> is a
|
|
list. The frist element of the list is the name of the function to define and the other elemens are
|
|
the arguments to that function. An example can be seen in <a href="#code:function-defines">7</a>. Note that the
|
|
definition looks like a call to the function we are constructing, making it easier to see what a
|
|
call to that function will look like.
|
|
</p>
|
|
|
|
<div class="org-src-container">
|
|
<label class="org-src-name">Definition of functions using the shorthand syntax of define</label>
|
|
<pre class="src src-slime" id="code:function-defines"><span style="color: #ff8c00;">(</span><span style="color: #859900;">define</span> <span style="color: #ff1493;">(</span><span style="color: #b58900;">hypothenuse</span> a b<span style="color: #ff1493;">)</span>
|
|
<span style="color: #ff1493;">(</span><span style="color: #859900;">**</span> <span style="color: #7fff00;">(</span><span style="color: #859900;">+</span> <span style="color: #00bfff;">(</span><span style="color: #859900;">*</span> a a<span style="color: #00bfff;">)</span> <span style="color: #00bfff;">(</span><span style="color: #859900;">*</span> b b<span style="color: #00bfff;">)</span><span style="color: #7fff00;">)</span> 0.5<span style="color: #ff1493;">)</span><span style="color: #ff8c00;">)</span>
|
|
|
|
<span style="color: #ff8c00;">(</span>printf <span style="color: #ff1493;">(</span>hypothenuse 3 4<span style="color: #ff1493;">)</span><span style="color: #ff8c00;">)</span>
|
|
</pre>
|
|
</div>
|
|
|
|
<pre class="example">
|
|
evaluates to =>
|
|
5
|
|
|
|
</pre>
|
|
</div>
|
|
</div>
|
|
|
|
<div id="outline-container-sec-7-2" class="outline-3">
|
|
<h3 id="sec-7-2"><span class="section-number-3">7.2</span> Functions with keyword arguments</h3>
|
|
<div class="outline-text-3" id="text-7-2">
|
|
<p>
|
|
A sometimes more convenient way of passing arguments to a function is using keyword arguments. Using
|
|
keyword arguments a function call could look like this: \[\texttt{(function :arg1 value1 :arg2
|
|
value2)}\] here the function accepts two arguments named <code>arg1</code> and <code>arg2</code>. The user of this
|
|
function can see more clearly excatly which argument will be assigned wich value. This notation also
|
|
allows for switching the argument order. The following function call is equivalent to the call
|
|
above. \[\texttt{(function :arg2 value2 :arg1 value1)}\].
|
|
</p>
|
|
|
|
<p>
|
|
For this to work however, the function must be defined to accept these keyword arguments. To do this
|
|
the special marker <code>:keys</code> has to be inserted into the argument list of a <code>lambda</code> or a function
|
|
<code>define</code>. All following arguments <b>must</b> be supplied as keyword arguments, <i>unless</i> they are also
|
|
supplied with a default value, in which case they do not need to be supplied. To attach a default
|
|
value to a keyword argument, insert <code>:defaults-to <value></code> after the keyword argument name. An
|
|
example of all of this can be seen in <a href="#code:keyword-args">8</a>. Important note: keyword arguments must be
|
|
defined and supplied after all the regular arguments.
|
|
</p>
|
|
|
|
<div class="org-src-container">
|
|
<label class="org-src-name">A more complex functoin definition using keyword arguments</label>
|
|
<pre class="src src-slime" id="code:keyword-args"><span style="color: #ff8c00;">(</span><span style="color: #859900;">define</span> <span style="color: #ff1493;">(</span><span style="color: #b58900;">complex</span> required1 required2 <span style="color: #6c71c4;">:keys</span>
|
|
key1
|
|
key2 <span style="color: #6c71c4;">:defaults-to</span> 3
|
|
key3<span style="color: #ff1493;">)</span>
|
|
<span style="color: #ff1493;">(</span><span style="color: #859900;">*</span> <span style="color: #7fff00;">(</span><span style="color: #859900;">+</span> required1 required2<span style="color: #7fff00;">)</span>
|
|
key1
|
|
key2
|
|
key3<span style="color: #ff1493;">)</span><span style="color: #ff8c00;">)</span>
|
|
|
|
<span style="color: #ff8c00;">(</span>printf <span style="color: #ff1493;">(</span>complex 1 2 <span style="color: #6c71c4;">:key1</span> 2 <span style="color: #6c71c4;">:key2</span> 2 <span style="color: #6c71c4;">:key3</span> 3<span style="color: #ff1493;">)</span><span style="color: #ff8c00;">)</span>
|
|
<span style="color: #ff8c00;">(</span>printf <span style="color: #ff1493;">(</span>complex 1 2 <span style="color: #6c71c4;">:key1</span> 2 <span style="color: #6c71c4;">:key3</span> 3<span style="color: #ff1493;">)</span><span style="color: #ff8c00;">)</span>
|
|
<span style="color: #ff8c00;">(</span>printf <span style="color: #ff1493;">(</span>complex 1 2 <span style="color: #6c71c4;">:key3</span> 3 <span style="color: #6c71c4;">:key1</span> 2<span style="color: #ff1493;">)</span><span style="color: #ff8c00;">)</span>
|
|
</pre>
|
|
</div>
|
|
|
|
<pre class="example">
|
|
evaluates to =>
|
|
36
|
|
54
|
|
54
|
|
|
|
</pre>
|
|
</div>
|
|
</div>
|
|
|
|
<div id="outline-container-sec-7-3" class="outline-3">
|
|
<h3 id="sec-7-3"><span class="section-number-3">7.3</span> Functions with rest arguments</h3>
|
|
<div class="outline-text-3" id="text-7-3">
|
|
<p>
|
|
If the programmer wants to create a function that can accept any number of arguments, they can use
|
|
the <code>rest</code> argument. It is defined after the special marker <code>:rest</code> and after the rest argument, no
|
|
other arguments can be defined. In the execution of the fuction, the rest arguent will be assigned
|
|
to a list containing all the supplied values. The rest argument can be used in conjunction with the
|
|
other argument types, regular arguments and keyword arguments.
|
|
</p>
|
|
|
|
<div class="org-src-container">
|
|
<label class="org-src-name">A more complex functoin definition using keyword arguments</label>
|
|
<pre class="src src-slime" id="code:rest-args"><span style="color: #ff8c00;">(</span><span style="color: #859900;">define</span> <span style="color: #ff1493;">(</span><span style="color: #b58900;">execute-operation</span> operation
|
|
<span style="color: #6c71c4;">:keys</span>
|
|
do-logging <span style="color: #6c71c4;">:defaults-to</span> <span style="color: #7fff00;">()</span>
|
|
<span style="color: #6c71c4;">:rest</span> values<span style="color: #ff1493;">)</span>
|
|
<span style="color: #ff1493;">(</span><span style="color: #859900;">define</span> result <span style="color: #7fff00;">(</span>apply operation values<span style="color: #7fff00;">)</span><span style="color: #ff1493;">)</span>
|
|
<span style="color: #ff1493;">(</span>when do-logging
|
|
<span style="color: #7fff00;">(</span>printf <span style="color: #2aa198;">"Executing operation"</span>
|
|
operation
|
|
<span style="color: #2aa198;">"agains the values"</span>
|
|
values
|
|
<span style="color: #2aa198;">"yielded:"</span>
|
|
result<span style="color: #7fff00;">)</span><span style="color: #ff1493;">)</span>
|
|
result<span style="color: #ff8c00;">)</span>
|
|
|
|
<span style="color: #ff8c00;">(</span>printf <span style="color: #ff1493;">(</span>execute-operation '+ 1 2 3<span style="color: #ff1493;">)</span><span style="color: #ff8c00;">)</span>
|
|
<span style="color: #ff8c00;">(</span>printf <span style="color: #ff1493;">(</span>execute-operation '*
|
|
<span style="color: #6c71c4;">:do-logging</span> t
|
|
10 11<span style="color: #ff1493;">)</span><span style="color: #ff8c00;">)</span>
|
|
</pre>
|
|
</div>
|
|
|
|
<pre class="example">
|
|
evaluates to =>
|
|
6
|
|
Executing operation * agains values (10 11) yielded: 110
|
|
110
|
|
|
|
</pre>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div id="outline-container-sec-8" class="outline-2">
|
|
<h2 id="sec-8"><span class="section-number-2">8</span> Environments</h2>
|
|
</div>
|
|
<div id="outline-container-sec-9" class="outline-2">
|
|
<h2 id="sec-9"><span class="section-number-2">9</span> Macros</h2>
|
|
</div>
|
|
<div id="outline-container-sec-" class="outline-2">
|
|
<h2 id="sec-">Built-in functions</h2>
|
|
<div class="outline-text-2" id="text-">
|
|
<hr/>
|
|
</div>
|
|
<div id="outline-container-sec-" class="outline-3">
|
|
<h3 id="sec-"><code>continuation?</code></h3>
|
|
<div class="outline-text-3" id="text-">
|
|
<dl class="org-dl">
|
|
<dt> type </dt><dd><code>:lambda</code>
|
|
</dd>
|
|
<dt> arguments </dt><dd><dl class="org-dl">
|
|
<dt> postitional </dt><dd><code>x</code>
|
|
</dd>
|
|
</dl>
|
|
</dd>
|
|
<dt> docu </dt><dd><p>
|
|
Checks if the argument is a continuation.
|
|
</p>
|
|
</dd>
|
|
</dl>
|
|
<hr/>
|
|
</div>
|
|
</div>
|
|
<div id="outline-container-sec-" class="outline-3">
|
|
<h3 id="sec-"><code>=</code></h3>
|
|
<div class="outline-text-3" id="text-">
|
|
<dl class="org-dl">
|
|
<dt> type </dt><dd><code>:cfunction</code>
|
|
</dd>
|
|
<dt> docu </dt><dd><p>
|
|
Takes 0 or more arguments and returns <code>t</code> if all arguments are equal and <code>()</code> otherwise.
|
|
</p>
|
|
</dd>
|
|
</dl>
|
|
<hr/>
|
|
</div>
|
|
</div>
|
|
<div id="outline-container-sec-" class="outline-3">
|
|
<h3 id="sec-"><code>+</code></h3>
|
|
<div class="outline-text-3" id="text-">
|
|
<dl class="org-dl">
|
|
<dt> type </dt><dd><code>:cfunction</code>
|
|
</dd>
|
|
<dt> docu </dt><dd><p>
|
|
TODO
|
|
</p>
|
|
</dd>
|
|
</dl>
|
|
<hr/>
|
|
</div>
|
|
</div>
|
|
<div id="outline-container-sec-" class="outline-3">
|
|
<h3 id="sec-"><code>get-random-between</code></h3>
|
|
<div class="outline-text-3" id="text-">
|
|
<dl class="org-dl">
|
|
<dt> type </dt><dd><code>:cfunction</code>
|
|
</dd>
|
|
<dt> docu </dt><dd><p>
|
|
TODO
|
|
</p>
|
|
</dd>
|
|
</dl>
|
|
<hr/>
|
|
</div>
|
|
</div>
|
|
<div id="outline-container-sec-" class="outline-3">
|
|
<h3 id="sec-"><code>lambda</code></h3>
|
|
<div class="outline-text-3" id="text-">
|
|
<dl class="org-dl">
|
|
<dt> type </dt><dd><code>:cfunction</code>
|
|
</dd>
|
|
<dt> docu </dt><dd><p>
|
|
TODO
|
|
</p>
|
|
</dd>
|
|
</dl>
|
|
<hr/>
|
|
</div>
|
|
</div>
|
|
<div id="outline-container-sec-" class="outline-3">
|
|
<h3 id="sec-"><code>info</code></h3>
|
|
<div class="outline-text-3" id="text-">
|
|
<dl class="org-dl">
|
|
<dt> type </dt><dd><code>:cfunction</code>
|
|
</dd>
|
|
<dt> docu </dt><dd><p>
|
|
TODO
|
|
</p>
|
|
</dd>
|
|
</dl>
|
|
<hr/>
|
|
</div>
|
|
</div>
|
|
<div id="outline-container-sec-" class="outline-3">
|
|
<h3 id="sec-"><code>addr-of</code></h3>
|
|
<div class="outline-text-3" id="text-">
|
|
<dl class="org-dl">
|
|
<dt> type </dt><dd><code>:cfunction</code>
|
|
</dd>
|
|
<dt> docu </dt><dd><p>
|
|
TODO
|
|
</p>
|
|
</dd>
|
|
</dl>
|
|
<hr/>
|
|
</div>
|
|
</div>
|
|
<div id="outline-container-sec-" class="outline-3">
|
|
<h3 id="sec-"><code>type</code>?=</h3>
|
|
<div class="outline-text-3" id="text-">
|
|
<dl class="org-dl">
|
|
<dt> type </dt><dd><code>:lambda</code>
|
|
</dd>
|
|
<dt> arguments </dt><dd><dl class="org-dl">
|
|
<dt> postitional </dt><dd><code>obj</code>, <code>typ</code>
|
|
</dd>
|
|
</dl>
|
|
</dd>
|
|
<dt> docu </dt><dd><p>
|
|
Checks if the argument <code>obj</code> is of type <code>typ</code>
|
|
</p>
|
|
</dd>
|
|
</dl>
|
|
<hr/>
|
|
</div>
|
|
</div>
|
|
<div id="outline-container-sec-" class="outline-3">
|
|
<h3 id="sec-"><code>symbol?</code></h3>
|
|
<div class="outline-text-3" id="text-">
|
|
<dl class="org-dl">
|
|
<dt> type </dt><dd><code>:lambda</code>
|
|
</dd>
|
|
<dt> arguments </dt><dd><dl class="org-dl">
|
|
<dt> postitional </dt><dd><code>x</code>
|
|
</dd>
|
|
</dl>
|
|
</dd>
|
|
<dt> docu </dt><dd><p>
|
|
Checks if the argument is a symbol.
|
|
</p>
|
|
</dd>
|
|
</dl>
|
|
<hr/>
|
|
</div>
|
|
</div>
|
|
<div id="outline-container-sec-" class="outline-3">
|
|
<h3 id="sec-"><code>macro?</code></h3>
|
|
<div class="outline-text-3" id="text-">
|
|
<dl class="org-dl">
|
|
<dt> type </dt><dd><code>:lambda</code>
|
|
</dd>
|
|
<dt> arguments </dt><dd><dl class="org-dl">
|
|
<dt> postitional </dt><dd><code>x</code>
|
|
</dd>
|
|
</dl>
|
|
</dd>
|
|
<dt> docu </dt><dd><p>
|
|
Checks if the argument is a macro.
|
|
</p>
|
|
</dd>
|
|
</dl>
|
|
<hr/>
|
|
</div>
|
|
</div>
|
|
<div id="outline-container-sec-" class="outline-3">
|
|
<h3 id="sec-"><code>procedure?</code></h3>
|
|
<div class="outline-text-3" id="text-">
|
|
<dl class="org-dl">
|
|
<dt> type </dt><dd><code>:lambda</code>
|
|
</dd>
|
|
<dt> arguments </dt><dd><dl class="org-dl">
|
|
<dt> postitional </dt><dd><code>x</code>
|
|
</dd>
|
|
</dl>
|
|
</dd>
|
|
<dt> docu </dt><dd>none
|
|
</dd>
|
|
</dl>
|
|
<hr/>
|
|
</div>
|
|
</div>
|
|
<div id="outline-container-sec-" class="outline-3">
|
|
<h3 id="sec-"><code>rest</code></h3>
|
|
<div class="outline-text-3" id="text-">
|
|
<dl class="org-dl">
|
|
<dt> type </dt><dd><code>:cfunction</code>
|
|
</dd>
|
|
<dt> docu </dt><dd><p>
|
|
TODO
|
|
</p>
|
|
</dd>
|
|
</dl>
|
|
<hr/>
|
|
</div>
|
|
</div>
|
|
<div id="outline-container-sec-" class="outline-3">
|
|
<h3 id="sec-"><code>type</code></h3>
|
|
<div class="outline-text-3" id="text-">
|
|
<dl class="org-dl">
|
|
<dt> type </dt><dd><code>:cfunction</code>
|
|
</dd>
|
|
<dt> docu </dt><dd><p>
|
|
TODO
|
|
</p>
|
|
</dd>
|
|
</dl>
|
|
<hr/>
|
|
</div>
|
|
</div>
|
|
<div id="outline-container-sec-" class="outline-3">
|
|
<h3 id="sec-"><code>print</code></h3>
|
|
<div class="outline-text-3" id="text-">
|
|
<dl class="org-dl">
|
|
<dt> type </dt><dd><code>:cfunction</code>
|
|
</dd>
|
|
<dt> docu </dt><dd><p>
|
|
TODO
|
|
</p>
|
|
</dd>
|
|
</dl>
|
|
<hr/>
|
|
</div>
|
|
</div>
|
|
<div id="outline-container-sec-" class="outline-3">
|
|
<h3 id="sec-"><code>import</code></h3>
|
|
<div class="outline-text-3" id="text-">
|
|
<dl class="org-dl">
|
|
<dt> type </dt><dd><code>:cfunction</code>
|
|
</dd>
|
|
<dt> docu </dt><dd><p>
|
|
TODO
|
|
</p>
|
|
</dd>
|
|
</dl>
|
|
<hr/>
|
|
</div>
|
|
</div>
|
|
<div id="outline-container-sec-" class="outline-3">
|
|
<h3 id="sec-"><code>symbol->keyword</code></h3>
|
|
<div class="outline-text-3" id="text-">
|
|
<dl class="org-dl">
|
|
<dt> type </dt><dd><code>:cfunction</code>
|
|
</dd>
|
|
<dt> docu </dt><dd><p>
|
|
TODO
|
|
</p>
|
|
</dd>
|
|
</dl>
|
|
<hr/>
|
|
</div>
|
|
</div>
|
|
<div id="outline-container-sec-" class="outline-3">
|
|
<h3 id="sec-"><code>pe</code></h3>
|
|
<div class="outline-text-3" id="text-">
|
|
<dl class="org-dl">
|
|
<dt> type </dt><dd><code>:macro</code>
|
|
</dd>
|
|
<dt> arguments </dt><dd><dl class="org-dl">
|
|
<dt> postitional </dt><dd><code>expr</code>
|
|
</dd>
|
|
</dl>
|
|
</dd>
|
|
<dt> docu </dt><dd>none
|
|
</dd>
|
|
</dl>
|
|
<hr/>
|
|
</div>
|
|
</div>
|
|
<div id="outline-container-sec-" class="outline-3">
|
|
<h3 id="sec-"><code>stream-null?</code></h3>
|
|
<div class="outline-text-3" id="text-">
|
|
<dl class="org-dl">
|
|
<dt> type </dt><dd><code>:lambda</code>
|
|
</dd>
|
|
<dt> arguments </dt><dd><dl class="org-dl">
|
|
<dt> postitional </dt><dd><code>s</code>
|
|
</dd>
|
|
</dl>
|
|
</dd>
|
|
<dt> docu </dt><dd>none
|
|
</dd>
|
|
</dl>
|
|
<hr/>
|
|
</div>
|
|
</div>
|
|
<div id="outline-container-sec-" class="outline-3">
|
|
<h3 id="sec-"><code>construct-list</code></h3>
|
|
<div class="outline-text-3" id="text-">
|
|
<dl class="org-dl">
|
|
<dt> type </dt><dd><code>:macro</code>
|
|
</dd>
|
|
<dt> arguments </dt><dd><dl class="org-dl">
|
|
<dt> rest </dt><dd><code>body</code>
|
|
</dd>
|
|
</dl>
|
|
</dd>
|
|
<dt> docu </dt><dd><div class="org-src-container">
|
|
|
|
<pre class="src src-slime"><span style="color: #ff8c00;">(</span>construct-list
|
|
i <- '<span style="color: #ff1493;">(</span>1 2 3 4 5<span style="color: #ff1493;">)</span>
|
|
yield <span style="color: #ff1493;">(</span><span style="color: #859900;">*</span> i i<span style="color: #ff1493;">)</span><span style="color: #ff8c00;">)</span>
|
|
</pre>
|
|
</div>
|
|
|
|
<p>
|
|
(construct-list
|
|
i <- '(1 2 3 4)
|
|
j <- '(A B)
|
|
yield (pair i j))
|
|
</p>
|
|
|
|
<p>
|
|
(construct-list
|
|
i <- '(1 2 3 4 5 6 7 8)
|
|
if (= 0 (% i 2))
|
|
yield i)
|
|
</p>
|
|
</dd>
|
|
</dl>
|
|
<hr/>
|
|
</div>
|
|
</div>
|
|
<div id="outline-container-sec-" class="outline-3">
|
|
<h3 id="sec-"><code>define</code></h3>
|
|
<div class="outline-text-3" id="text-">
|
|
<dl class="org-dl">
|
|
<dt> type </dt><dd><code>:cfunction</code>
|
|
</dd>
|
|
<dt> docu </dt><dd><p>
|
|
TODO
|
|
</p>
|
|
</dd>
|
|
</dl>
|
|
<hr/>
|
|
</div>
|
|
</div>
|
|
<div id="outline-container-sec-" class="outline-3">
|
|
<h3 id="sec-"><code>vector-length</code></h3>
|
|
<div class="outline-text-3" id="text-">
|
|
<dl class="org-dl">
|
|
<dt> type </dt><dd><code>:cfunction</code>
|
|
</dd>
|
|
<dt> docu </dt><dd><p>
|
|
TODO
|
|
</p>
|
|
</dd>
|
|
</dl>
|
|
<hr/>
|
|
</div>
|
|
</div>
|
|
<div id="outline-container-sec-" class="outline-3">
|
|
<h3 id="sec-"><code>/</code></h3>
|
|
<div class="outline-text-3" id="text-">
|
|
<dl class="org-dl">
|
|
<dt> type </dt><dd><code>:cfunction</code>
|
|
</dd>
|
|
<dt> docu </dt><dd><p>
|
|
TODO
|
|
</p>
|
|
</dd>
|
|
</dl>
|
|
<hr/>
|
|
</div>
|
|
</div>
|
|
<div id="outline-container-sec-" class="outline-3">
|
|
<h3 id="sec-"><code>quasiquote</code></h3>
|
|
<div class="outline-text-3" id="text-">
|
|
<dl class="org-dl">
|
|
<dt> type </dt><dd><code>:cfunction</code>
|
|
</dd>
|
|
<dt> docu </dt><dd><p>
|
|
TODO
|
|
</p>
|
|
</dd>
|
|
</dl>
|
|
<hr/>
|
|
</div>
|
|
</div>
|
|
<div id="outline-container-sec-" class="outline-3">
|
|
<h3 id="sec-"><code>or</code></h3>
|
|
<div class="outline-text-3" id="text-">
|
|
<dl class="org-dl">
|
|
<dt> type </dt><dd><code>:cfunction</code>
|
|
</dd>
|
|
<dt> docu </dt><dd><p>
|
|
TODO
|
|
</p>
|
|
</dd>
|
|
</dl>
|
|
<hr/>
|
|
</div>
|
|
</div>
|
|
<div id="outline-container-sec-" class="outline-3">
|
|
<h3 id="sec-"><code>list</code></h3>
|
|
<div class="outline-text-3" id="text-">
|
|
<dl class="org-dl">
|
|
<dt> type </dt><dd><code>:cfunction</code>
|
|
</dd>
|
|
<dt> docu </dt><dd><p>
|
|
TODO
|
|
</p>
|
|
</dd>
|
|
</dl>
|
|
<hr/>
|
|
</div>
|
|
</div>
|
|
<div id="outline-container-sec-" class="outline-3">
|
|
<h3 id="sec-"><code>zip</code></h3>
|
|
<div class="outline-text-3" id="text-">
|
|
<dl class="org-dl">
|
|
<dt> type </dt><dd><code>:lambda</code>
|
|
</dd>
|
|
<dt> arguments </dt><dd><dl class="org-dl">
|
|
<dt> postitional </dt><dd><code>l1</code>, <code>l2</code>
|
|
</dd>
|
|
</dl>
|
|
</dd>
|
|
<dt> docu </dt><dd>none
|
|
</dd>
|
|
</dl>
|
|
<hr/>
|
|
</div>
|
|
</div>
|
|
<div id="outline-container-sec-" class="outline-3">
|
|
<h3 id="sec-"><code>generic-extend</code></h3>
|
|
<div class="outline-text-3" id="text-">
|
|
<dl class="org-dl">
|
|
<dt> type </dt><dd><code>:macro</code>
|
|
</dd>
|
|
<dt> arguments </dt><dd><dl class="org-dl">
|
|
<dt> postitional </dt><dd><code>args</code>
|
|
</dd>
|
|
<dt> rest </dt><dd><code>body</code>
|
|
</dd>
|
|
</dl>
|
|
</dd>
|
|
<dt> docu </dt><dd>none
|
|
</dd>
|
|
</dl>
|
|
<hr/>
|
|
</div>
|
|
</div>
|
|
<div id="outline-container-sec-" class="outline-3">
|
|
<h3 id="sec-"><code>pair?</code></h3>
|
|
<div class="outline-text-3" id="text-">
|
|
<dl class="org-dl">
|
|
<dt> type </dt><dd><code>:lambda</code>
|
|
</dd>
|
|
<dt> arguments </dt><dd><dl class="org-dl">
|
|
<dt> postitional </dt><dd><code>x</code>
|
|
</dd>
|
|
</dl>
|
|
</dd>
|
|
<dt> docu </dt><dd><p>
|
|
Checks if the argument is a pair.
|
|
</p>
|
|
</dd>
|
|
</dl>
|
|
<hr/>
|
|
</div>
|
|
</div>
|
|
<div id="outline-container-sec-" class="outline-3">
|
|
<h3 id="sec-"><code>end</code></h3>
|
|
<div class="outline-text-3" id="text-">
|
|
<dl class="org-dl">
|
|
<dt> type </dt><dd><code>:lambda</code>
|
|
</dd>
|
|
<dt> arguments </dt><dd><dl class="org-dl">
|
|
<dt> postitional </dt><dd><code>seq</code>
|
|
</dd>
|
|
</dl>
|
|
</dd>
|
|
<dt> docu </dt><dd><p>
|
|
Returns the last pair in the sqeuence.
|
|
</p>
|
|
|
|
<div class="org-src-container">
|
|
|
|
<pre class="src src-slime"><span style="color: #ff8c00;">(</span><span style="color: #859900;">define</span> a <span style="color: #ff1493;">(</span><span style="color: #859900;">list</span> 1 2 3 4<span style="color: #ff1493;">)</span><span style="color: #ff8c00;">)</span>
|
|
<span style="color: #ff8c00;">(</span><span style="color: #859900;">print</span> <span style="color: #ff1493;">(</span>end a<span style="color: #ff1493;">)</span><span style="color: #ff8c00;">)</span>
|
|
</pre>
|
|
</div>
|
|
</dd>
|
|
</dl>
|
|
<hr/>
|
|
</div>
|
|
</div>
|
|
<div id="outline-container-sec-" class="outline-3">
|
|
<h3 id="sec-"><code>decrement</code></h3>
|
|
<div class="outline-text-3" id="text-">
|
|
<dl class="org-dl">
|
|
<dt> type </dt><dd><code>:lambda</code>
|
|
</dd>
|
|
<dt> arguments </dt><dd><dl class="org-dl">
|
|
<dt> postitional </dt><dd><code>val</code>
|
|
</dd>
|
|
</dl>
|
|
</dd>
|
|
<dt> docu </dt><dd><p>
|
|
Subtracts one from the argument.
|
|
</p>
|
|
</dd>
|
|
</dl>
|
|
<hr/>
|
|
</div>
|
|
</div>
|
|
<div id="outline-container-sec-" class="outline-3">
|
|
<h3 id="sec-"><code>range-while</code></h3>
|
|
<div class="outline-text-3" id="text-">
|
|
<dl class="org-dl">
|
|
<dt> type </dt><dd><code>:lambda</code>
|
|
</dd>
|
|
<dt> arguments </dt><dd><dl class="org-dl">
|
|
<dt> keyword </dt><dd><code>from</code> <code>(0)</code>, <code>to</code>
|
|
</dd>
|
|
</dl>
|
|
</dd>
|
|
<dt> docu </dt><dd><p>
|
|
Returns a sequence of numbers starting with the number defined
|
|
by the key 'from' and ends with the number defined in 'to'.
|
|
</p>
|
|
</dd>
|
|
</dl>
|
|
<hr/>
|
|
</div>
|
|
</div>
|
|
<div id="outline-container-sec-" class="outline-3">
|
|
<h3 id="sec-"><code>mutate</code></h3>
|
|
<div class="outline-text-3" id="text-">
|
|
<dl class="org-dl">
|
|
<dt> type </dt><dd><code>:cfunction</code>
|
|
</dd>
|
|
<dt> docu </dt><dd><p>
|
|
TODO
|
|
</p>
|
|
</dd>
|
|
</dl>
|
|
<hr/>
|
|
</div>
|
|
</div>
|
|
<div id="outline-container-sec-" class="outline-3">
|
|
<h3 id="sec-"><code><</code></h3>
|
|
<div class="outline-text-3" id="text-">
|
|
<dl class="org-dl">
|
|
<dt> type </dt><dd><code>:cfunction</code>
|
|
</dd>
|
|
<dt> docu </dt><dd><p>
|
|
TODO
|
|
</p>
|
|
</dd>
|
|
</dl>
|
|
<hr/>
|
|
</div>
|
|
</div>
|
|
<div id="outline-container-sec-" class="outline-3">
|
|
<h3 id="sec-"><code>assert</code></h3>
|
|
<div class="outline-text-3" id="text-">
|
|
<dl class="org-dl">
|
|
<dt> type </dt><dd><code>:cfunction</code>
|
|
</dd>
|
|
<dt> docu </dt><dd><p>
|
|
TODO
|
|
</p>
|
|
</dd>
|
|
</dl>
|
|
<hr/>
|
|
</div>
|
|
</div>
|
|
<div id="outline-container-sec-" class="outline-3">
|
|
<h3 id="sec-"><code>set-car!</code></h3>
|
|
<div class="outline-text-3" id="text-">
|
|
<dl class="org-dl">
|
|
<dt> type </dt><dd><code>:cfunction</code>
|
|
</dd>
|
|
<dt> docu </dt><dd><p>
|
|
TODO
|
|
</p>
|
|
</dd>
|
|
</dl>
|
|
<hr/>
|
|
</div>
|
|
</div>
|
|
<div id="outline-container-sec-" class="outline-3">
|
|
<h3 id="sec-"><code>eval</code></h3>
|
|
<div class="outline-text-3" id="text-">
|
|
<dl class="org-dl">
|
|
<dt> type </dt><dd><code>:cfunction</code>
|
|
</dd>
|
|
<dt> docu </dt><dd><p>
|
|
TODO
|
|
</p>
|
|
</dd>
|
|
</dl>
|
|
<hr/>
|
|
</div>
|
|
</div>
|
|
<div id="outline-container-sec-" class="outline-3">
|
|
<h3 id="sec-"><code>vector</code></h3>
|
|
<div class="outline-text-3" id="text-">
|
|
<dl class="org-dl">
|
|
<dt> type </dt><dd><code>:cfunction</code>
|
|
</dd>
|
|
<dt> docu </dt><dd><p>
|
|
TODO
|
|
</p>
|
|
</dd>
|
|
</dl>
|
|
<hr/>
|
|
</div>
|
|
</div>
|
|
<div id="outline-container-sec-" class="outline-3">
|
|
<h3 id="sec-"><code>memstat</code></h3>
|
|
<div class="outline-text-3" id="text-">
|
|
<dl class="org-dl">
|
|
<dt> type </dt><dd><code>:cfunction</code>
|
|
</dd>
|
|
<dt> docu </dt><dd><p>
|
|
TODO
|
|
</p>
|
|
</dd>
|
|
</dl>
|
|
<hr/>
|
|
</div>
|
|
</div>
|
|
<div id="outline-container-sec-" class="outline-3">
|
|
<h3 id="sec-"><code>symbol->string</code></h3>
|
|
<div class="outline-text-3" id="text-">
|
|
<dl class="org-dl">
|
|
<dt> type </dt><dd><code>:cfunction</code>
|
|
</dd>
|
|
<dt> docu </dt><dd><p>
|
|
TODO
|
|
</p>
|
|
</dd>
|
|
</dl>
|
|
<hr/>
|
|
</div>
|
|
</div>
|
|
<div id="outline-container-sec-" class="outline-3">
|
|
<h3 id="sec-"><code>cond</code></h3>
|
|
<div class="outline-text-3" id="text-">
|
|
<dl class="org-dl">
|
|
<dt> type </dt><dd><code>:macro</code>
|
|
</dd>
|
|
<dt> arguments </dt><dd><dl class="org-dl">
|
|
<dt> rest </dt><dd><code>clauses</code>
|
|
</dd>
|
|
</dl>
|
|
</dd>
|
|
<dt> docu </dt><dd>none
|
|
</dd>
|
|
</dl>
|
|
<hr/>
|
|
</div>
|
|
</div>
|
|
<div id="outline-container-sec-" class="outline-3">
|
|
<h3 id="sec-"><code>reduce</code></h3>
|
|
<div class="outline-text-3" id="text-">
|
|
<dl class="org-dl">
|
|
<dt> type </dt><dd><code>:lambda</code>
|
|
</dd>
|
|
<dt> arguments </dt><dd><dl class="org-dl">
|
|
<dt> postitional </dt><dd><code>fun</code>, <code>seq</code>
|
|
</dd>
|
|
</dl>
|
|
</dd>
|
|
<dt> docu </dt><dd><p>
|
|
Takes a function and a sequence as arguments and applies the
|
|
function to the argument sequence. This only works correctly if the
|
|
given function accepts a variable amount of parameters. If your
|
|
funciton is limited to two arguments, use <a href="#sec-"><code>reduce-binary</code></a>
|
|
instead.
|
|
</p>
|
|
</dd>
|
|
</dl>
|
|
<hr/>
|
|
</div>
|
|
</div>
|
|
<div id="outline-container-sec-" class="outline-3">
|
|
<h3 id="sec-"><code>define-module</code></h3>
|
|
<div class="outline-text-3" id="text-">
|
|
<dl class="org-dl">
|
|
<dt> type </dt><dd><code>:macro</code>
|
|
</dd>
|
|
<dt> arguments </dt><dd><dl class="org-dl">
|
|
<dt> postitional </dt><dd><code>module-name</code>
|
|
</dd>
|
|
<dt> keyword </dt><dd><code>imports</code> <code>(())</code>, <code>exports</code>
|
|
</dd>
|
|
<dt> rest </dt><dd><code>body</code>
|
|
</dd>
|
|
</dl>
|
|
</dd>
|
|
<dt> docu </dt><dd>none
|
|
</dd>
|
|
</dl>
|
|
<hr/>
|
|
</div>
|
|
</div>
|
|
<div id="outline-container-sec-" class="outline-3">
|
|
<h3 id="sec-"><code>null?</code></h3>
|
|
<div class="outline-text-3" id="text-">
|
|
<dl class="org-dl">
|
|
<dt> type </dt><dd><code>:lambda</code>
|
|
</dd>
|
|
<dt> arguments </dt><dd><dl class="org-dl">
|
|
<dt> postitional </dt><dd><code>x</code>
|
|
</dd>
|
|
</dl>
|
|
</dd>
|
|
<dt> docu </dt><dd><p>
|
|
Checks if the argument is <code>nil</code>.
|
|
</p>
|
|
</dd>
|
|
</dl>
|
|
<hr/>
|
|
</div>
|
|
</div>
|
|
<div id="outline-container-sec-" class="outline-3">
|
|
<h3 id="sec-"><code>built-in-function?</code></h3>
|
|
<div class="outline-text-3" id="text-">
|
|
<dl class="org-dl">
|
|
<dt> type </dt><dd><code>:lambda</code>
|
|
</dd>
|
|
<dt> arguments </dt><dd><dl class="org-dl">
|
|
<dt> postitional </dt><dd><code>x</code>
|
|
</dd>
|
|
</dl>
|
|
</dd>
|
|
<dt> docu </dt><dd><p>
|
|
Checks if the argument is a built-in function.
|
|
</p>
|
|
</dd>
|
|
</dl>
|
|
<hr/>
|
|
</div>
|
|
</div>
|
|
<div id="outline-container-sec-" class="outline-3">
|
|
<h3 id="sec-"><code>list-without-index</code></h3>
|
|
<div class="outline-text-3" id="text-">
|
|
<dl class="org-dl">
|
|
<dt> type </dt><dd><code>:lambda</code>
|
|
</dd>
|
|
<dt> arguments </dt><dd><dl class="org-dl">
|
|
<dt> postitional </dt><dd><code>seq</code>, <code>index</code>
|
|
</dd>
|
|
</dl>
|
|
</dd>
|
|
<dt> docu </dt><dd>none
|
|
</dd>
|
|
</dl>
|
|
<hr/>
|
|
</div>
|
|
</div>
|
|
<div id="outline-container-sec-" class="outline-3">
|
|
<h3 id="sec-"><code>error</code></h3>
|
|
<div class="outline-text-3" id="text-">
|
|
<dl class="org-dl">
|
|
<dt> type </dt><dd><code>:cfunction</code>
|
|
</dd>
|
|
<dt> docu </dt><dd><p>
|
|
TODO
|
|
</p>
|
|
</dd>
|
|
</dl>
|
|
<hr/>
|
|
</div>
|
|
</div>
|
|
<div id="outline-container-sec-" class="outline-3">
|
|
<h3 id="sec-"><code>hm/set!</code></h3>
|
|
<div class="outline-text-3" id="text-">
|
|
<dl class="org-dl">
|
|
<dt> type </dt><dd><code>:cfunction</code>
|
|
</dd>
|
|
<dt> docu </dt><dd><p>
|
|
TODO
|
|
</p>
|
|
</dd>
|
|
</dl>
|
|
<hr/>
|
|
</div>
|
|
</div>
|
|
<div id="outline-container-sec-" class="outline-3">
|
|
<h3 id="sec-"><code>case</code></h3>
|
|
<div class="outline-text-3" id="text-">
|
|
<dl class="org-dl">
|
|
<dt> type </dt><dd><code>:macro</code>
|
|
</dd>
|
|
<dt> arguments </dt><dd><dl class="org-dl">
|
|
<dt> postitional </dt><dd><code>var</code>
|
|
</dd>
|
|
<dt> rest </dt><dd><code>clauses</code>
|
|
</dd>
|
|
</dl>
|
|
</dd>
|
|
<dt> docu </dt><dd>none
|
|
</dd>
|
|
</dl>
|
|
<hr/>
|
|
</div>
|
|
</div>
|
|
<div id="outline-container-sec-" class="outline-3">
|
|
<h3 id="sec-"><code>-</code></h3>
|
|
<div class="outline-text-3" id="text-">
|
|
<dl class="org-dl">
|
|
<dt> type </dt><dd><code>:cfunction</code>
|
|
</dd>
|
|
<dt> docu </dt><dd><p>
|
|
TODO
|
|
</p>
|
|
</dd>
|
|
</dl>
|
|
<hr/>
|
|
</div>
|
|
</div>
|
|
<div id="outline-container-sec-" class="outline-3">
|
|
<h3 id="sec-"><code>%</code></h3>
|
|
<div class="outline-text-3" id="text-">
|
|
<dl class="org-dl">
|
|
<dt> type </dt><dd><code>:cfunction</code>
|
|
</dd>
|
|
<dt> docu </dt><dd><p>
|
|
TODO
|
|
</p>
|
|
</dd>
|
|
</dl>
|
|
<hr/>
|
|
</div>
|
|
</div>
|
|
<div id="outline-container-sec-" class="outline-3">
|
|
<h3 id="sec-"><code>extend</code></h3>
|
|
<div class="outline-text-3" id="text-">
|
|
<dl class="org-dl">
|
|
<dt> type </dt><dd><code>:lambda</code>
|
|
</dd>
|
|
<dt> arguments </dt><dd><dl class="org-dl">
|
|
<dt> postitional </dt><dd><code>seq</code>, <code>elem</code>
|
|
</dd>
|
|
</dl>
|
|
</dd>
|
|
<dt> docu </dt><dd><p>
|
|
Extends a list with the given element, by putting it in
|
|
the (rest) of the last element of the sequence.
|
|
</p>
|
|
</dd>
|
|
</dl>
|
|
<hr/>
|
|
</div>
|
|
</div>
|
|
<div id="outline-container-sec-" class="outline-3">
|
|
<h3 id="sec-"><code>lambda?</code></h3>
|
|
<div class="outline-text-3" id="text-">
|
|
<dl class="org-dl">
|
|
<dt> type </dt><dd><code>:lambda</code>
|
|
</dd>
|
|
<dt> arguments </dt><dd><dl class="org-dl">
|
|
<dt> postitional </dt><dd><code>x</code>
|
|
</dd>
|
|
</dl>
|
|
</dd>
|
|
<dt> docu </dt><dd><p>
|
|
Checks if the argument is a function.
|
|
</p>
|
|
</dd>
|
|
</dl>
|
|
<hr/>
|
|
</div>
|
|
</div>
|
|
<div id="outline-container-sec-" class="outline-3">
|
|
<h3 id="sec-"><code>extend2</code></h3>
|
|
<div class="outline-text-3" id="text-">
|
|
<dl class="org-dl">
|
|
<dt> type </dt><dd><code>:lambda</code>
|
|
</dd>
|
|
<dt> arguments </dt><dd><dl class="org-dl">
|
|
<dt> postitional </dt><dd><code>seq</code>, <code>elem</code>
|
|
</dd>
|
|
</dl>
|
|
</dd>
|
|
<dt> docu </dt><dd><p>
|
|
Extends a list with the given element, by putting it in
|
|
the (rest) of the last element of the sequence.
|
|
</p>
|
|
</dd>
|
|
</dl>
|
|
<hr/>
|
|
</div>
|
|
</div>
|
|
<div id="outline-container-sec-" class="outline-3">
|
|
<h3 id="sec-"><code>length</code></h3>
|
|
<div class="outline-text-3" id="text-">
|
|
<dl class="org-dl">
|
|
<dt> type </dt><dd><code>:lambda</code>
|
|
</dd>
|
|
<dt> arguments </dt><dd><dl class="org-dl">
|
|
<dt> postitional </dt><dd><code>seq</code>
|
|
</dd>
|
|
</dl>
|
|
</dd>
|
|
<dt> docu </dt><dd><p>
|
|
Returns the length of the given sequence.
|
|
</p>
|
|
</dd>
|
|
</dl>
|
|
<hr/>
|
|
</div>
|
|
</div>
|
|
<div id="outline-container-sec-" class="outline-3">
|
|
<h3 id="sec-"><code>helper</code></h3>
|
|
<div class="outline-text-3" id="text-">
|
|
<dl class="org-dl">
|
|
<dt> type </dt><dd><code>:cfunction</code>
|
|
</dd>
|
|
<dt> docu </dt><dd></dd>
|
|
</dl>
|
|
<hr/>
|
|
</div>
|
|
</div>
|
|
<div id="outline-container-sec-" class="outline-3">
|
|
<h3 id="sec-"><code>></code></h3>
|
|
<div class="outline-text-3" id="text-">
|
|
<dl class="org-dl">
|
|
<dt> type </dt><dd><code>:cfunction</code>
|
|
</dd>
|
|
<dt> docu </dt><dd><p>
|
|
TODO
|
|
</p>
|
|
</dd>
|
|
</dl>
|
|
<hr/>
|
|
</div>
|
|
</div>
|
|
<div id="outline-container-sec-" class="outline-3">
|
|
<h3 id="sec-"><code>**</code></h3>
|
|
<div class="outline-text-3" id="text-">
|
|
<dl class="org-dl">
|
|
<dt> type </dt><dd><code>:cfunction</code>
|
|
</dd>
|
|
<dt> docu </dt><dd><p>
|
|
TODO
|
|
</p>
|
|
</dd>
|
|
</dl>
|
|
<hr/>
|
|
</div>
|
|
</div>
|
|
<div id="outline-container-sec-" class="outline-3">
|
|
<h3 id="sec-"><code>set!</code></h3>
|
|
<div class="outline-text-3" id="text-">
|
|
<dl class="org-dl">
|
|
<dt> type </dt><dd><code>:cfunction</code>
|
|
</dd>
|
|
<dt> docu </dt><dd><p>
|
|
TODO
|
|
</p>
|
|
</dd>
|
|
</dl>
|
|
<hr/>
|
|
</div>
|
|
</div>
|
|
<div id="outline-container-sec-" class="outline-3">
|
|
<h3 id="sec-"><code>if</code></h3>
|
|
<div class="outline-text-3" id="text-">
|
|
<dl class="org-dl">
|
|
<dt> type </dt><dd><code>:cfunction</code>
|
|
</dd>
|
|
<dt> docu </dt><dd><p>
|
|
TODO
|
|
</p>
|
|
</dd>
|
|
</dl>
|
|
<hr/>
|
|
</div>
|
|
</div>
|
|
<div id="outline-container-sec-" class="outline-3">
|
|
<h3 id="sec-"><code>quote</code></h3>
|
|
<div class="outline-text-3" id="text-">
|
|
<dl class="org-dl">
|
|
<dt> type </dt><dd><code>:cfunction</code>
|
|
</dd>
|
|
<dt> docu </dt><dd><p>
|
|
TODO
|
|
</p>
|
|
</dd>
|
|
</dl>
|
|
<hr/>
|
|
</div>
|
|
</div>
|
|
<div id="outline-container-sec-" class="outline-3">
|
|
<h3 id="sec-"><code>not</code></h3>
|
|
<div class="outline-text-3" id="text-">
|
|
<dl class="org-dl">
|
|
<dt> type </dt><dd><code>:cfunction</code>
|
|
</dd>
|
|
<dt> docu </dt><dd><p>
|
|
TODO
|
|
</p>
|
|
</dd>
|
|
</dl>
|
|
<hr/>
|
|
</div>
|
|
</div>
|
|
<div id="outline-container-sec-" class="outline-3">
|
|
<h3 id="sec-"><code>apply</code></h3>
|
|
<div class="outline-text-3" id="text-">
|
|
<dl class="org-dl">
|
|
<dt> type </dt><dd><code>:cfunction</code>
|
|
</dd>
|
|
<dt> docu </dt><dd><p>
|
|
TODO
|
|
</p>
|
|
</dd>
|
|
</dl>
|
|
<hr/>
|
|
</div>
|
|
</div>
|
|
<div id="outline-container-sec-" class="outline-3">
|
|
<h3 id="sec-"><code>create-hash-map</code></h3>
|
|
<div class="outline-text-3" id="text-">
|
|
<dl class="org-dl">
|
|
<dt> type </dt><dd><code>:cfunction</code>
|
|
</dd>
|
|
<dt> docu </dt><dd><p>
|
|
TODO
|
|
</p>
|
|
</dd>
|
|
</dl>
|
|
<hr/>
|
|
</div>
|
|
</div>
|
|
<div id="outline-container-sec-" class="outline-3">
|
|
<h3 id="sec-"><code>first</code></h3>
|
|
<div class="outline-text-3" id="text-">
|
|
<dl class="org-dl">
|
|
<dt> type </dt><dd><code>:cfunction</code>
|
|
</dd>
|
|
<dt> docu </dt><dd><p>
|
|
TODO
|
|
</p>
|
|
</dd>
|
|
</dl>
|
|
<hr/>
|
|
</div>
|
|
</div>
|
|
<div id="outline-container-sec-" class="outline-3">
|
|
<h3 id="sec-"><code>delete-type!</code></h3>
|
|
<div class="outline-text-3" id="text-">
|
|
<dl class="org-dl">
|
|
<dt> type </dt><dd><code>:cfunction</code>
|
|
</dd>
|
|
<dt> docu </dt><dd><p>
|
|
TODO
|
|
</p>
|
|
</dd>
|
|
</dl>
|
|
<hr/>
|
|
</div>
|
|
</div>
|
|
<div id="outline-container-sec-" class="outline-3">
|
|
<h3 id="sec-"><code>show</code></h3>
|
|
<div class="outline-text-3" id="text-">
|
|
<dl class="org-dl">
|
|
<dt> type </dt><dd><code>:cfunction</code>
|
|
</dd>
|
|
<dt> docu </dt><dd><p>
|
|
TODO
|
|
</p>
|
|
</dd>
|
|
</dl>
|
|
<hr/>
|
|
</div>
|
|
</div>
|
|
<div id="outline-container-sec-" class="outline-3">
|
|
<h3 id="sec-"><code>generate-docs</code></h3>
|
|
<div class="outline-text-3" id="text-">
|
|
<dl class="org-dl">
|
|
<dt> type </dt><dd><code>:cfunction</code>
|
|
</dd>
|
|
<dt> docu </dt><dd><p>
|
|
TODO
|
|
</p>
|
|
</dd>
|
|
</dl>
|
|
<hr/>
|
|
</div>
|
|
</div>
|
|
<div id="outline-container-sec-" class="outline-3">
|
|
<h3 id="sec-"><code>load</code></h3>
|
|
<div class="outline-text-3" id="text-">
|
|
<dl class="org-dl">
|
|
<dt> type </dt><dd><code>:cfunction</code>
|
|
</dd>
|
|
<dt> docu </dt><dd><p>
|
|
TODO
|
|
</p>
|
|
</dd>
|
|
</dl>
|
|
<hr/>
|
|
</div>
|
|
</div>
|
|
<div id="outline-container-sec-" class="outline-3">
|
|
<h3 id="sec-"><code>hm/get-or-nil</code></h3>
|
|
<div class="outline-text-3" id="text-">
|
|
<dl class="org-dl">
|
|
<dt> type </dt><dd><code>:lambda</code>
|
|
</dd>
|
|
<dt> arguments </dt><dd><dl class="org-dl">
|
|
<dt> postitional </dt><dd><code>hm</code>, <code>key</code>
|
|
</dd>
|
|
</dl>
|
|
</dd>
|
|
<dt> docu </dt><dd>none
|
|
</dd>
|
|
</dl>
|
|
<hr/>
|
|
</div>
|
|
</div>
|
|
<div id="outline-container-sec-" class="outline-3">
|
|
<h3 id="sec-"><code>the-empty-stream</code></h3>
|
|
<div class="outline-text-3" id="text-">
|
|
<dl class="org-dl">
|
|
<dt> type </dt><dd><code>:constructor</code>
|
|
</dd>
|
|
<dt> value </dt><dd><code>()</code>
|
|
</dd>
|
|
<dt> docu </dt><dd>none
|
|
</dd>
|
|
</dl>
|
|
<hr/>
|
|
</div>
|
|
</div>
|
|
<div id="outline-container-sec-" class="outline-3">
|
|
<h3 id="sec-"><code>force</code></h3>
|
|
<div class="outline-text-3" id="text-">
|
|
<dl class="org-dl">
|
|
<dt> type </dt><dd><code>:lambda</code>
|
|
</dd>
|
|
<dt> arguments </dt><dd><dl class="org-dl">
|
|
<dt> postitional </dt><dd><code>promise</code>
|
|
</dd>
|
|
</dl>
|
|
</dd>
|
|
<dt> docu </dt><dd>none
|
|
</dd>
|
|
</dl>
|
|
<hr/>
|
|
</div>
|
|
</div>
|
|
<div id="outline-container-sec-" class="outline-3">
|
|
<h3 id="sec-"><code>when</code></h3>
|
|
<div class="outline-text-3" id="text-">
|
|
<dl class="org-dl">
|
|
<dt> type </dt><dd><code>:macro</code>
|
|
</dd>
|
|
<dt> arguments </dt><dd><dl class="org-dl">
|
|
<dt> postitional </dt><dd><code>condition</code>
|
|
</dd>
|
|
<dt> rest </dt><dd><code>body</code>
|
|
</dd>
|
|
</dl>
|
|
</dd>
|
|
<dt> docu </dt><dd><p>
|
|
Special form for when multiple actions should be done if a
|
|
condition is true.
|
|
</p>
|
|
|
|
<div class="org-src-container">
|
|
|
|
<pre class="src src-slime"><span style="color: #ff8c00;">(</span>when <span style="color: #ff1493;">(</span><span style="color: #859900;">not</span> <span style="color: #7fff00;">()</span><span style="color: #ff1493;">)</span>
|
|
<span style="color: #ff1493;">(</span><span style="color: #859900;">print</span> <span style="color: #2aa198;">"Hello "</span><span style="color: #ff1493;">)</span>
|
|
<span style="color: #ff1493;">(</span><span style="color: #859900;">print</span> <span style="color: #2aa198;">"from "</span><span style="color: #ff1493;">)</span>
|
|
<span style="color: #ff1493;">(</span><span style="color: #859900;">print</span> <span style="color: #2aa198;">"when!"</span><span style="color: #ff1493;">)</span><span style="color: #ff8c00;">)</span>
|
|
|
|
<span style="color: #ff8c00;">(</span>when <span style="color: #ff1493;">()</span>
|
|
<span style="color: #ff1493;">(</span><span style="color: #859900;">print</span> <span style="color: #2aa198;">"Goodbye "</span><span style="color: #ff1493;">)</span>
|
|
<span style="color: #ff1493;">(</span><span style="color: #859900;">print</span> <span style="color: #2aa198;">"World!"</span><span style="color: #ff1493;">)</span><span style="color: #ff8c00;">)</span>
|
|
</pre>
|
|
</div>
|
|
</dd>
|
|
</dl>
|
|
<hr/>
|
|
</div>
|
|
</div>
|
|
<div id="outline-container-sec-" class="outline-3">
|
|
<h3 id="sec-"><code>member?</code></h3>
|
|
<div class="outline-text-3" id="text-">
|
|
<dl class="org-dl">
|
|
<dt> type </dt><dd><code>:lambda</code>
|
|
</dd>
|
|
<dt> arguments </dt><dd><dl class="org-dl">
|
|
<dt> postitional </dt><dd><code>elem</code>, <code>seq</code>
|
|
</dd>
|
|
</dl>
|
|
</dd>
|
|
<dt> docu </dt><dd>none
|
|
</dd>
|
|
</dl>
|
|
<hr/>
|
|
</div>
|
|
</div>
|
|
<div id="outline-container-sec-" class="outline-3">
|
|
<h3 id="sec-"><code>number?</code></h3>
|
|
<div class="outline-text-3" id="text-">
|
|
<dl class="org-dl">
|
|
<dt> type </dt><dd><code>:lambda</code>
|
|
</dd>
|
|
<dt> arguments </dt><dd><dl class="org-dl">
|
|
<dt> postitional </dt><dd><code>x</code>
|
|
</dd>
|
|
</dl>
|
|
</dd>
|
|
<dt> docu </dt><dd><p>
|
|
Checks if the argument is a number.
|
|
</p>
|
|
</dd>
|
|
</dl>
|
|
<hr/>
|
|
</div>
|
|
</div>
|
|
<div id="outline-container-sec-" class="outline-3">
|
|
<h3 id="sec-"><code>sublist-starting-at-index</code></h3>
|
|
<div class="outline-text-3" id="text-">
|
|
<dl class="org-dl">
|
|
<dt> type </dt><dd><code>:lambda</code>
|
|
</dd>
|
|
<dt> arguments </dt><dd><dl class="org-dl">
|
|
<dt> postitional </dt><dd><code>seq</code>, <code>index</code>
|
|
</dd>
|
|
</dl>
|
|
</dd>
|
|
<dt> docu </dt><dd>none
|
|
</dd>
|
|
</dl>
|
|
<hr/>
|
|
</div>
|
|
</div>
|
|
<div id="outline-container-sec-" class="outline-3">
|
|
<h3 id="sec-"><code>increment</code></h3>
|
|
<div class="outline-text-3" id="text-">
|
|
<dl class="org-dl">
|
|
<dt> type </dt><dd><code>:lambda</code>
|
|
</dd>
|
|
<dt> arguments </dt><dd><dl class="org-dl">
|
|
<dt> postitional </dt><dd><code>val</code>
|
|
</dd>
|
|
</dl>
|
|
</dd>
|
|
<dt> docu </dt><dd><p>
|
|
Adds one to the argument.
|
|
</p>
|
|
</dd>
|
|
</dl>
|
|
<hr/>
|
|
</div>
|
|
</div>
|
|
<div id="outline-container-sec-" class="outline-3">
|
|
<h3 id="sec-"><code>pair</code></h3>
|
|
<div class="outline-text-3" id="text-">
|
|
<dl class="org-dl">
|
|
<dt> type </dt><dd><code>:cfunction</code>
|
|
</dd>
|
|
<dt> docu </dt><dd><p>
|
|
TODO
|
|
</p>
|
|
</dd>
|
|
</dl>
|
|
<hr/>
|
|
</div>
|
|
</div>
|
|
<div id="outline-container-sec-" class="outline-3">
|
|
<h3 id="sec-"><code>set-type!</code></h3>
|
|
<div class="outline-text-3" id="text-">
|
|
<dl class="org-dl">
|
|
<dt> type </dt><dd><code>:cfunction</code>
|
|
</dd>
|
|
<dt> docu </dt><dd><p>
|
|
TODO
|
|
</p>
|
|
</dd>
|
|
</dl>
|
|
<hr/>
|
|
</div>
|
|
</div>
|
|
<div id="outline-container-sec-" class="outline-3">
|
|
<h3 id="sec-"><code>mem-reset</code></h3>
|
|
<div class="outline-text-3" id="text-">
|
|
<dl class="org-dl">
|
|
<dt> type </dt><dd><code>:cfunction</code>
|
|
</dd>
|
|
<dt> docu </dt><dd><p>
|
|
TODO
|
|
</p>
|
|
</dd>
|
|
</dl>
|
|
<hr/>
|
|
</div>
|
|
</div>
|
|
<div id="outline-container-sec-" class="outline-3">
|
|
<h3 id="sec-"><code>mytry</code></h3>
|
|
<div class="outline-text-3" id="text-">
|
|
<dl class="org-dl">
|
|
<dt> type </dt><dd><code>:cfunction</code>
|
|
</dd>
|
|
<dt> docu </dt><dd><p>
|
|
TODO
|
|
</p>
|
|
</dd>
|
|
</dl>
|
|
<hr/>
|
|
</div>
|
|
</div>
|
|
<div id="outline-container-sec-" class="outline-3">
|
|
<h3 id="sec-"><code>string->symbol</code></h3>
|
|
<div class="outline-text-3" id="text-">
|
|
<dl class="org-dl">
|
|
<dt> type </dt><dd><code>:cfunction</code>
|
|
</dd>
|
|
<dt> docu </dt><dd><p>
|
|
TODO
|
|
</p>
|
|
</dd>
|
|
</dl>
|
|
<hr/>
|
|
</div>
|
|
</div>
|
|
<div id="outline-container-sec-" class="outline-3">
|
|
<h3 id="sec-"><code>delay</code></h3>
|
|
<div class="outline-text-3" id="text-">
|
|
<dl class="org-dl">
|
|
<dt> type </dt><dd><code>:macro</code>
|
|
</dd>
|
|
<dt> arguments </dt><dd><dl class="org-dl">
|
|
<dt> postitional </dt><dd><code>expr</code>
|
|
</dd>
|
|
</dl>
|
|
</dd>
|
|
<dt> docu </dt><dd>none
|
|
</dd>
|
|
</dl>
|
|
<hr/>
|
|
</div>
|
|
</div>
|
|
<div id="outline-container-sec-" class="outline-3">
|
|
<h3 id="sec-"><code>define-typed</code></h3>
|
|
<div class="outline-text-3" id="text-">
|
|
<dl class="org-dl">
|
|
<dt> type </dt><dd><code>:macro</code>
|
|
</dd>
|
|
<dt> arguments </dt><dd><dl class="org-dl">
|
|
<dt> postitional </dt><dd><code>args</code>
|
|
</dd>
|
|
<dt> rest </dt><dd><code>body</code>
|
|
</dd>
|
|
</dl>
|
|
</dd>
|
|
<dt> docu </dt><dd>none
|
|
</dd>
|
|
</dl>
|
|
<hr/>
|
|
</div>
|
|
</div>
|
|
<div id="outline-container-sec-" class="outline-3">
|
|
<h3 id="sec-"><code>vector-set!</code></h3>
|
|
<div class="outline-text-3" id="text-">
|
|
<dl class="org-dl">
|
|
<dt> type </dt><dd><code>:cfunction</code>
|
|
</dd>
|
|
<dt> docu </dt><dd><p>
|
|
TODO
|
|
</p>
|
|
</dd>
|
|
</dl>
|
|
<hr/>
|
|
</div>
|
|
</div>
|
|
<div id="outline-container-sec-" class="outline-3">
|
|
<h3 id="sec-"><code><=</code></h3>
|
|
<div class="outline-text-3" id="text-">
|
|
<dl class="org-dl">
|
|
<dt> type </dt><dd><code>:cfunction</code>
|
|
</dd>
|
|
<dt> docu </dt><dd><p>
|
|
TODO
|
|
</p>
|
|
</dd>
|
|
</dl>
|
|
<hr/>
|
|
</div>
|
|
</div>
|
|
<div id="outline-container-sec-" class="outline-3">
|
|
<h3 id="sec-"><code>bound?</code></h3>
|
|
<div class="outline-text-3" id="text-">
|
|
<dl class="org-dl">
|
|
<dt> type </dt><dd><code>:cfunction</code>
|
|
</dd>
|
|
<dt> docu </dt><dd><p>
|
|
TODO
|
|
</p>
|
|
</dd>
|
|
</dl>
|
|
<hr/>
|
|
</div>
|
|
</div>
|
|
<div id="outline-container-sec-" class="outline-3">
|
|
<h3 id="sec-"><code>hash-map-delete!</code></h3>
|
|
<div class="outline-text-3" id="text-">
|
|
<dl class="org-dl">
|
|
<dt> type </dt><dd><code>:cfunction</code>
|
|
</dd>
|
|
<dt> docu </dt><dd><p>
|
|
TODO
|
|
</p>
|
|
</dd>
|
|
</dl>
|
|
<hr/>
|
|
</div>
|
|
</div>
|
|
<div id="outline-container-sec-" class="outline-3">
|
|
<h3 id="sec-"><code>filter</code></h3>
|
|
<div class="outline-text-3" id="text-">
|
|
<dl class="org-dl">
|
|
<dt> type </dt><dd><code>:lambda</code>
|
|
</dd>
|
|
<dt> arguments </dt><dd><dl class="org-dl">
|
|
<dt> postitional </dt><dd><code>fun</code>, <code>seq</code>
|
|
</dd>
|
|
</dl>
|
|
</dd>
|
|
<dt> docu </dt><dd><p>
|
|
Takes a function and a sequence as arguments and applies the
|
|
function to every value in the sequence. If the result of that
|
|
funciton application returns a truthy value, the original value is
|
|
added to a list, which in the end is returned.
|
|
</p>
|
|
</dd>
|
|
</dl>
|
|
<hr/>
|
|
</div>
|
|
</div>
|
|
<div id="outline-container-sec-" class="outline-3">
|
|
<h3 id="sec-"><code>unzip</code></h3>
|
|
<div class="outline-text-3" id="text-">
|
|
<dl class="org-dl">
|
|
<dt> type </dt><dd><code>:lambda</code>
|
|
</dd>
|
|
<dt> arguments </dt><dd><dl class="org-dl">
|
|
<dt> postitional </dt><dd><code>lists</code>
|
|
</dd>
|
|
</dl>
|
|
</dd>
|
|
<dt> docu </dt><dd>none
|
|
</dd>
|
|
</dl>
|
|
<hr/>
|
|
</div>
|
|
</div>
|
|
<div id="outline-container-sec-" class="outline-3">
|
|
<h3 id="sec-"><code>types</code>?=</h3>
|
|
<div class="outline-text-3" id="text-">
|
|
<dl class="org-dl">
|
|
<dt> type </dt><dd><code>:lambda</code>
|
|
</dd>
|
|
<dt> arguments </dt><dd><dl class="org-dl">
|
|
<dt> rest </dt><dd><code>objs</code>
|
|
</dd>
|
|
</dl>
|
|
</dd>
|
|
<dt> docu </dt><dd>none
|
|
</dd>
|
|
</dl>
|
|
<hr/>
|
|
</div>
|
|
</div>
|
|
<div id="outline-container-sec-" class="outline-3">
|
|
<h3 id="sec-"><code>special-lambda?</code></h3>
|
|
<div class="outline-text-3" id="text-">
|
|
<dl class="org-dl">
|
|
<dt> type </dt><dd><code>:lambda</code>
|
|
</dd>
|
|
<dt> arguments </dt><dd><dl class="org-dl">
|
|
<dt> postitional </dt><dd><code>x</code>
|
|
</dd>
|
|
</dl>
|
|
</dd>
|
|
<dt> docu </dt><dd><p>
|
|
Checks if the argument is a special-lambda.
|
|
</p>
|
|
</dd>
|
|
</dl>
|
|
<hr/>
|
|
</div>
|
|
</div>
|
|
<div id="outline-container-sec-" class="outline-3">
|
|
<h3 id="sec-"><code>last</code></h3>
|
|
<div class="outline-text-3" id="text-">
|
|
<dl class="org-dl">
|
|
<dt> type </dt><dd><code>:lambda</code>
|
|
</dd>
|
|
<dt> arguments </dt><dd><dl class="org-dl">
|
|
<dt> postitional </dt><dd><code>seq</code>
|
|
</dd>
|
|
</dl>
|
|
</dd>
|
|
<dt> docu </dt><dd><p>
|
|
Returns the (first) of the last (pair) of the given sequence.
|
|
</p>
|
|
|
|
<div class="org-src-container">
|
|
|
|
<pre class="src src-slime"><span style="color: #ff8c00;">(</span><span style="color: #859900;">define</span> a <span style="color: #ff1493;">(</span><span style="color: #859900;">list</span> 1 2 3 4<span style="color: #ff1493;">)</span><span style="color: #ff8c00;">)</span>
|
|
<span style="color: #ff8c00;">(</span><span style="color: #859900;">print</span> <span style="color: #ff1493;">(</span>last a<span style="color: #ff1493;">)</span><span style="color: #ff8c00;">)</span>
|
|
</pre>
|
|
</div>
|
|
</dd>
|
|
</dl>
|
|
<hr/>
|
|
</div>
|
|
</div>
|
|
<div id="outline-container-sec-" class="outline-3">
|
|
<h3 id="sec-"><code>append</code></h3>
|
|
<div class="outline-text-3" id="text-">
|
|
<dl class="org-dl">
|
|
<dt> type </dt><dd><code>:lambda</code>
|
|
</dd>
|
|
<dt> arguments </dt><dd><dl class="org-dl">
|
|
<dt> postitional </dt><dd><code>seq</code>, <code>elem</code>
|
|
</dd>
|
|
</dl>
|
|
</dd>
|
|
<dt> docu </dt><dd><p>
|
|
Appends an element to a sequence, by extendeing the list
|
|
with (pair elem nil).
|
|
</p>
|
|
</dd>
|
|
</dl>
|
|
<hr/>
|
|
</div>
|
|
</div>
|
|
<div id="outline-container-sec-" class="outline-3">
|
|
<h3 id="sec-"><code>define-syntax</code></h3>
|
|
<div class="outline-text-3" id="text-">
|
|
<dl class="org-dl">
|
|
<dt> type </dt><dd><code>:cfunction</code>
|
|
</dd>
|
|
<dt> docu </dt><dd><p>
|
|
TODO
|
|
</p>
|
|
</dd>
|
|
</dl>
|
|
<hr/>
|
|
</div>
|
|
</div>
|
|
<div id="outline-container-sec-" class="outline-3">
|
|
<h3 id="sec-"><code>vector-ref</code></h3>
|
|
<div class="outline-text-3" id="text-">
|
|
<dl class="org-dl">
|
|
<dt> type </dt><dd><code>:cfunction</code>
|
|
</dd>
|
|
<dt> docu </dt><dd><p>
|
|
TODO
|
|
</p>
|
|
</dd>
|
|
</dl>
|
|
<hr/>
|
|
</div>
|
|
</div>
|
|
<div id="outline-container-sec-" class="outline-3">
|
|
<h3 id="sec-"><code>*</code></h3>
|
|
<div class="outline-text-3" id="text-">
|
|
<dl class="org-dl">
|
|
<dt> type </dt><dd><code>:cfunction</code>
|
|
</dd>
|
|
<dt> docu </dt><dd><p>
|
|
TODO
|
|
</p>
|
|
</dd>
|
|
</dl>
|
|
<hr/>
|
|
</div>
|
|
</div>
|
|
<div id="outline-container-sec-" class="outline-3">
|
|
<h3 id="sec-"><code>and</code></h3>
|
|
<div class="outline-text-3" id="text-">
|
|
<dl class="org-dl">
|
|
<dt> type </dt><dd><code>:cfunction</code>
|
|
</dd>
|
|
<dt> docu </dt><dd><p>
|
|
TODO
|
|
</p>
|
|
</dd>
|
|
</dl>
|
|
<hr/>
|
|
</div>
|
|
</div>
|
|
<div id="outline-container-sec-" class="outline-3">
|
|
<h3 id="sec-"><code>begin</code></h3>
|
|
<div class="outline-text-3" id="text-">
|
|
<dl class="org-dl">
|
|
<dt> type </dt><dd><code>:cfunction</code>
|
|
</dd>
|
|
<dt> docu </dt><dd><p>
|
|
TODO
|
|
</p>
|
|
</dd>
|
|
</dl>
|
|
<hr/>
|
|
</div>
|
|
</div>
|
|
<div id="outline-container-sec-" class="outline-3">
|
|
<h3 id="sec-"><code>hash-map-set!</code></h3>
|
|
<div class="outline-text-3" id="text-">
|
|
<dl class="org-dl">
|
|
<dt> type </dt><dd><code>:cfunction</code>
|
|
</dd>
|
|
<dt> docu </dt><dd><p>
|
|
TODO
|
|
</p>
|
|
</dd>
|
|
</dl>
|
|
<hr/>
|
|
</div>
|
|
</div>
|
|
<div id="outline-container-sec-" class="outline-3">
|
|
<h3 id="sec-"><code>copy</code></h3>
|
|
<div class="outline-text-3" id="text-">
|
|
<dl class="org-dl">
|
|
<dt> type </dt><dd><code>:cfunction</code>
|
|
</dd>
|
|
<dt> docu </dt><dd><p>
|
|
TODO
|
|
</p>
|
|
</dd>
|
|
</dl>
|
|
<hr/>
|
|
</div>
|
|
</div>
|
|
<div id="outline-container-sec-" class="outline-3">
|
|
<h3 id="sec-"><code>concat-strings</code></h3>
|
|
<div class="outline-text-3" id="text-">
|
|
<dl class="org-dl">
|
|
<dt> type </dt><dd><code>:cfunction</code>
|
|
</dd>
|
|
<dt> docu </dt><dd><p>
|
|
TODO
|
|
</p>
|
|
</dd>
|
|
</dl>
|
|
<hr/>
|
|
</div>
|
|
</div>
|
|
<div id="outline-container-sec-" class="outline-3">
|
|
<h3 id="sec-"><code>let</code></h3>
|
|
<div class="outline-text-3" id="text-">
|
|
<dl class="org-dl">
|
|
<dt> type </dt><dd><code>:macro</code>
|
|
</dd>
|
|
<dt> arguments </dt><dd><dl class="org-dl">
|
|
<dt> postitional </dt><dd><code>bindings</code>
|
|
</dd>
|
|
<dt> rest </dt><dd><code>body</code>
|
|
</dd>
|
|
</dl>
|
|
</dd>
|
|
<dt> docu </dt><dd>none
|
|
</dd>
|
|
</dl>
|
|
<hr/>
|
|
</div>
|
|
</div>
|
|
<div id="outline-container-sec-" class="outline-3">
|
|
<h3 id="sec-"><code>enumerate</code></h3>
|
|
<div class="outline-text-3" id="text-">
|
|
<dl class="org-dl">
|
|
<dt> type </dt><dd><code>:lambda</code>
|
|
</dd>
|
|
<dt> arguments </dt><dd><dl class="org-dl">
|
|
<dt> postitional </dt><dd><code>seq</code>
|
|
</dd>
|
|
</dl>
|
|
</dd>
|
|
<dt> docu </dt><dd>none
|
|
</dd>
|
|
</dl>
|
|
<hr/>
|
|
</div>
|
|
</div>
|
|
<div id="outline-container-sec-" class="outline-3">
|
|
<h3 id="sec-"><code>assert-types=</code></h3>
|
|
<div class="outline-text-3" id="text-">
|
|
<dl class="org-dl">
|
|
<dt> type </dt><dd><code>:lambda</code>
|
|
</dd>
|
|
<dt> arguments </dt><dd><dl class="org-dl">
|
|
<dt> rest </dt><dd><code>objs</code>
|
|
</dd>
|
|
</dl>
|
|
</dd>
|
|
<dt> docu </dt><dd>none
|
|
</dd>
|
|
</dl>
|
|
<hr/>
|
|
</div>
|
|
</div>
|
|
<div id="outline-container-sec-" class="outline-3">
|
|
<h3 id="sec-"><code>keyword?</code></h3>
|
|
<div class="outline-text-3" id="text-">
|
|
<dl class="org-dl">
|
|
<dt> type </dt><dd><code>:lambda</code>
|
|
</dd>
|
|
<dt> arguments </dt><dd><dl class="org-dl">
|
|
<dt> postitional </dt><dd><code>x</code>
|
|
</dd>
|
|
</dl>
|
|
</dd>
|
|
<dt> docu </dt><dd><p>
|
|
Checks if the argument is a keyword.
|
|
</p>
|
|
</dd>
|
|
</dl>
|
|
<hr/>
|
|
</div>
|
|
</div>
|
|
<div id="outline-container-sec-" class="outline-3">
|
|
<h3 id="sec-"><code>string?</code></h3>
|
|
<div class="outline-text-3" id="text-">
|
|
<dl class="org-dl">
|
|
<dt> type </dt><dd><code>:lambda</code>
|
|
</dd>
|
|
<dt> arguments </dt><dd><dl class="org-dl">
|
|
<dt> postitional </dt><dd><code>x</code>
|
|
</dd>
|
|
</dl>
|
|
</dd>
|
|
<dt> docu </dt><dd><p>
|
|
Checks if the argument is a string.
|
|
</p>
|
|
</dd>
|
|
</dl>
|
|
<hr/>
|
|
</div>
|
|
</div>
|
|
<div id="outline-container-sec-" class="outline-3">
|
|
<h3 id="sec-"><code>range</code></h3>
|
|
<div class="outline-text-3" id="text-">
|
|
<dl class="org-dl">
|
|
<dt> type </dt><dd><code>:lambda</code>
|
|
</dd>
|
|
<dt> arguments </dt><dd><dl class="org-dl">
|
|
<dt> keyword </dt><dd><code>from</code> <code>(0)</code>, <code>to</code>
|
|
</dd>
|
|
</dl>
|
|
</dd>
|
|
<dt> docu </dt><dd><p>
|
|
Returns a sequence of numbers starting with the number defined
|
|
by the key <code>from</code> and ends with the number defined in <code>to</code>.
|
|
</p>
|
|
</dd>
|
|
</dl>
|
|
<hr/>
|
|
</div>
|
|
</div>
|
|
<div id="outline-container-sec-" class="outline-3">
|
|
<h3 id="sec-"><code>map</code></h3>
|
|
<div class="outline-text-3" id="text-">
|
|
<dl class="org-dl">
|
|
<dt> type </dt><dd><code>:lambda</code>
|
|
</dd>
|
|
<dt> arguments </dt><dd><dl class="org-dl">
|
|
<dt> postitional </dt><dd><code>fun</code>, <code>seq</code>
|
|
</dd>
|
|
</dl>
|
|
</dd>
|
|
<dt> docu </dt><dd><p>
|
|
Takes a function and a sequence as arguments and returns a new
|
|
sequence which contains the results of using the first sequences
|
|
elemens as argument to that function.
|
|
</p>
|
|
</dd>
|
|
</dl>
|
|
<hr/>
|
|
</div>
|
|
</div>
|
|
<div id="outline-container-sec-" class="outline-3">
|
|
<h3 id="sec-"><code>read</code></h3>
|
|
<div class="outline-text-3" id="text-">
|
|
<dl class="org-dl">
|
|
<dt> type </dt><dd><code>:cfunction</code>
|
|
</dd>
|
|
<dt> docu </dt><dd><p>
|
|
TODO
|
|
</p>
|
|
</dd>
|
|
</dl>
|
|
<hr/>
|
|
</div>
|
|
</div>
|
|
<div id="outline-container-sec-" class="outline-3">
|
|
<h3 id="sec-"><code>exit</code></h3>
|
|
<div class="outline-text-3" id="text-">
|
|
<dl class="org-dl">
|
|
<dt> type </dt><dd><code>:cfunction</code>
|
|
</dd>
|
|
<dt> docu </dt><dd><p>
|
|
TODO
|
|
</p>
|
|
</dd>
|
|
</dl>
|
|
<hr/>
|
|
</div>
|
|
</div>
|
|
<div id="outline-container-sec-" class="outline-3">
|
|
<h3 id="sec-"><code>break</code></h3>
|
|
<div class="outline-text-3" id="text-">
|
|
<dl class="org-dl">
|
|
<dt> type </dt><dd><code>:cfunction</code>
|
|
</dd>
|
|
<dt> docu </dt><dd><p>
|
|
TODO
|
|
</p>
|
|
</dd>
|
|
</dl>
|
|
<hr/>
|
|
</div>
|
|
</div>
|
|
<div id="outline-container-sec-" class="outline-3">
|
|
<h3 id="sec-"><code>hm/get</code></h3>
|
|
<div class="outline-text-3" id="text-">
|
|
<dl class="org-dl">
|
|
<dt> type </dt><dd><code>:cfunction</code>
|
|
</dd>
|
|
<dt> docu </dt><dd><p>
|
|
TODO
|
|
</p>
|
|
</dd>
|
|
</dl>
|
|
<hr/>
|
|
</div>
|
|
</div>
|
|
<div id="outline-container-sec-" class="outline-3">
|
|
<h3 id="sec-"><code>unless</code></h3>
|
|
<div class="outline-text-3" id="text-">
|
|
<dl class="org-dl">
|
|
<dt> type </dt><dd><code>:macro</code>
|
|
</dd>
|
|
<dt> arguments </dt><dd><dl class="org-dl">
|
|
<dt> postitional </dt><dd><code>condition</code>
|
|
</dd>
|
|
<dt> rest </dt><dd><code>body</code>
|
|
</dd>
|
|
</dl>
|
|
</dd>
|
|
<dt> docu </dt><dd><p>
|
|
Special form for when multiple actions should be done if a
|
|
condition is false.
|
|
</p>
|
|
</dd>
|
|
</dl>
|
|
<hr/>
|
|
</div>
|
|
</div>
|
|
<div id="outline-container-sec-" class="outline-3">
|
|
<h3 id="sec-"><code>n-times</code></h3>
|
|
<div class="outline-text-3" id="text-">
|
|
<dl class="org-dl">
|
|
<dt> type </dt><dd><code>:macro</code>
|
|
</dd>
|
|
<dt> arguments </dt><dd><dl class="org-dl">
|
|
<dt> postitional </dt><dd><code>times</code>, <code>action</code>
|
|
</dd>
|
|
</dl>
|
|
</dd>
|
|
<dt> docu </dt><dd><p>
|
|
Executes action times times.
|
|
</p>
|
|
</dd>
|
|
</dl>
|
|
<hr/>
|
|
</div>
|
|
</div>
|
|
<div id="outline-container-sec-" class="outline-3">
|
|
<h3 id="sec-"><code>test</code></h3>
|
|
<div class="outline-text-3" id="text-">
|
|
<dl class="org-dl">
|
|
<dt> type </dt><dd><code>:cfunction</code>
|
|
</dd>
|
|
<dt> docu </dt><dd></dd>
|
|
</dl>
|
|
<hr/>
|
|
</div>
|
|
</div>
|
|
<div id="outline-container-sec-" class="outline-3">
|
|
<h3 id="sec-"><code>>=</code></h3>
|
|
<div class="outline-text-3" id="text-">
|
|
<dl class="org-dl">
|
|
<dt> type </dt><dd><code>:cfunction</code>
|
|
</dd>
|
|
<dt> docu </dt><dd><p>
|
|
TODO
|
|
</p>
|
|
</dd>
|
|
</dl>
|
|
<hr/>
|
|
</div>
|
|
</div>
|
|
<div id="outline-container-sec-" class="outline-3">
|
|
<h3 id="sec-"><code>set-cdr!</code></h3>
|
|
<div class="outline-text-3" id="text-">
|
|
<dl class="org-dl">
|
|
<dt> type </dt><dd><code>:cfunction</code>
|
|
</dd>
|
|
<dt> docu </dt><dd><p>
|
|
TODO
|
|
</p>
|
|
</dd>
|
|
</dl>
|
|
<hr/>
|
|
</div>
|
|
</div>
|
|
<div id="outline-container-sec-" class="outline-3">
|
|
<h3 id="sec-"><code>hash-map-get</code></h3>
|
|
<div class="outline-text-3" id="text-">
|
|
<dl class="org-dl">
|
|
<dt> type </dt><dd><code>:cfunction</code>
|
|
</dd>
|
|
<dt> docu </dt><dd><p>
|
|
TODO
|
|
</p>
|
|
</dd>
|
|
</dl>
|
|
<hr/>
|
|
</div>
|
|
</div>
|
|
<div id="outline-container-sec-" class="outline-3">
|
|
<h3 id="sec-"><code>reduce-binary</code></h3>
|
|
<div class="outline-text-3" id="text-">
|
|
<dl class="org-dl">
|
|
<dt> type </dt><dd><code>:lambda</code>
|
|
</dd>
|
|
<dt> arguments </dt><dd><dl class="org-dl">
|
|
<dt> postitional </dt><dd><code>fun</code>, <code>seq</code>
|
|
</dd>
|
|
</dl>
|
|
</dd>
|
|
<dt> docu </dt><dd><p>
|
|
Takes a function and a sequence as arguments and applies the
|
|
function to the argument sequence. reduce-binary applies the arguments
|
|
<b>pair-wise</b> which means it works with binary functions as compared to
|
|
<a href="#sec-"><code>reduce</code></a>.
|
|
</p>
|
|
</dd>
|
|
</dl>
|
|
<hr/>
|
|
</div>
|
|
</div>
|
|
<div id="outline-container-sec-" class="outline-3">
|
|
<h3 id="sec-"><code>ds::alist::make</code></h3>
|
|
<div class="outline-text-3" id="text-">
|
|
<dl class="org-dl">
|
|
<dt> type </dt><dd><code>:lambda</code>
|
|
</dd>
|
|
<dt> arguments </dt><dd>none.
|
|
</dd>
|
|
<dt> docu </dt><dd>none
|
|
</dd>
|
|
</dl>
|
|
<hr/>
|
|
</div>
|
|
</div>
|
|
<div id="outline-container-sec-" class="outline-3">
|
|
<h3 id="sec-"><code>ds::alist::print</code></h3>
|
|
<div class="outline-text-3" id="text-">
|
|
<dl class="org-dl">
|
|
<dt> type </dt><dd><code>:lambda</code>
|
|
</dd>
|
|
<dt> arguments </dt><dd><dl class="org-dl">
|
|
<dt> postitional </dt><dd><code>alist</code>
|
|
</dd>
|
|
</dl>
|
|
</dd>
|
|
<dt> docu </dt><dd>none
|
|
</dd>
|
|
</dl>
|
|
<hr/>
|
|
</div>
|
|
</div>
|
|
<div id="outline-container-sec-" class="outline-3">
|
|
<h3 id="sec-"><code>ds::alist::get</code></h3>
|
|
<div class="outline-text-3" id="text-">
|
|
<dl class="org-dl">
|
|
<dt> type </dt><dd><code>:lambda</code>
|
|
</dd>
|
|
<dt> arguments </dt><dd><dl class="org-dl">
|
|
<dt> postitional </dt><dd><code>alist</code>, <code>key</code>
|
|
</dd>
|
|
</dl>
|
|
</dd>
|
|
<dt> docu </dt><dd>none
|
|
</dd>
|
|
</dl>
|
|
<hr/>
|
|
</div>
|
|
</div>
|
|
<div id="outline-container-sec-" class="outline-3">
|
|
<h3 id="sec-"><code>ds::alist::find</code></h3>
|
|
<div class="outline-text-3" id="text-">
|
|
<dl class="org-dl">
|
|
<dt> type </dt><dd><code>:lambda</code>
|
|
</dd>
|
|
<dt> arguments </dt><dd><dl class="org-dl">
|
|
<dt> postitional </dt><dd><code>alist</code>, <code>key</code>
|
|
</dd>
|
|
</dl>
|
|
</dd>
|
|
<dt> docu </dt><dd>none
|
|
</dd>
|
|
</dl>
|
|
<hr/>
|
|
</div>
|
|
</div>
|
|
<div id="outline-container-sec-" class="outline-3">
|
|
<h3 id="sec-"><code>ds::alist::key-exists?</code></h3>
|
|
<div class="outline-text-3" id="text-">
|
|
<dl class="org-dl">
|
|
<dt> type </dt><dd><code>:lambda</code>
|
|
</dd>
|
|
<dt> arguments </dt><dd><dl class="org-dl">
|
|
<dt> postitional </dt><dd><code>alist</code>, <code>key</code>
|
|
</dd>
|
|
</dl>
|
|
</dd>
|
|
<dt> docu </dt><dd>none
|
|
</dd>
|
|
</dl>
|
|
<hr/>
|
|
</div>
|
|
</div>
|
|
<div id="outline-container-sec-" class="outline-3">
|
|
<h3 id="sec-"><code>ds::alist::remove!</code></h3>
|
|
<div class="outline-text-3" id="text-">
|
|
<dl class="org-dl">
|
|
<dt> type </dt><dd><code>:lambda</code>
|
|
</dd>
|
|
<dt> arguments </dt><dd><dl class="org-dl">
|
|
<dt> postitional </dt><dd><code>alist</code>, <code>key</code>
|
|
</dd>
|
|
</dl>
|
|
</dd>
|
|
<dt> docu </dt><dd>none
|
|
</dd>
|
|
</dl>
|
|
<hr/>
|
|
</div>
|
|
</div>
|
|
<div id="outline-container-sec-" class="outline-3">
|
|
<h3 id="sec-"><code>ds::alist::set!</code></h3>
|
|
<div class="outline-text-3" id="text-">
|
|
<dl class="org-dl">
|
|
<dt> type </dt><dd><code>:lambda</code>
|
|
</dd>
|
|
<dt> arguments </dt><dd><dl class="org-dl">
|
|
<dt> postitional </dt><dd><code>alist</code>, <code>key</code>, <code>value</code>
|
|
</dd>
|
|
</dl>
|
|
</dd>
|
|
<dt> docu </dt><dd>none
|
|
</dd>
|
|
</dl>
|
|
<hr/>
|
|
</div>
|
|
</div>
|
|
<div id="outline-container-sec-" class="outline-3">
|
|
<h3 id="sec-"><code>ds::alist::set-overwrite!</code></h3>
|
|
<div class="outline-text-3" id="text-">
|
|
<dl class="org-dl">
|
|
<dt> type </dt><dd><code>:lambda</code>
|
|
</dd>
|
|
<dt> arguments </dt><dd><dl class="org-dl">
|
|
<dt> postitional </dt><dd><code>alist</code>, <code>key</code>, <code>value</code>
|
|
</dd>
|
|
</dl>
|
|
</dd>
|
|
<dt> docu </dt><dd>none
|
|
</dd>
|
|
</dl>
|
|
<hr/>
|
|
</div>
|
|
</div>
|
|
<div id="outline-container-sec-" class="outline-3">
|
|
<h3 id="sec-"><code>ds::plist::make</code></h3>
|
|
<div class="outline-text-3" id="text-">
|
|
<dl class="org-dl">
|
|
<dt> type </dt><dd><code>:lambda</code>
|
|
</dd>
|
|
<dt> arguments </dt><dd>none.
|
|
</dd>
|
|
<dt> docu </dt><dd>none
|
|
</dd>
|
|
</dl>
|
|
<hr/>
|
|
</div>
|
|
</div>
|
|
<div id="outline-container-sec-" class="outline-3">
|
|
<h3 id="sec-"><code>ds::plist::print</code></h3>
|
|
<div class="outline-text-3" id="text-">
|
|
<dl class="org-dl">
|
|
<dt> type </dt><dd><code>:lambda</code>
|
|
</dd>
|
|
<dt> arguments </dt><dd><dl class="org-dl">
|
|
<dt> postitional </dt><dd><code>plist</code>
|
|
</dd>
|
|
</dl>
|
|
</dd>
|
|
<dt> docu </dt><dd>none
|
|
</dd>
|
|
</dl>
|
|
<hr/>
|
|
</div>
|
|
</div>
|
|
<div id="outline-container-sec-" class="outline-3">
|
|
<h3 id="sec-"><code>ds::plist::get</code></h3>
|
|
<div class="outline-text-3" id="text-">
|
|
<dl class="org-dl">
|
|
<dt> type </dt><dd><code>:lambda</code>
|
|
</dd>
|
|
<dt> arguments </dt><dd><dl class="org-dl">
|
|
<dt> postitional </dt><dd><code>plist</code>, <code>prop</code>
|
|
</dd>
|
|
</dl>
|
|
</dd>
|
|
<dt> docu </dt><dd>none
|
|
</dd>
|
|
</dl>
|
|
<hr/>
|
|
</div>
|
|
</div>
|
|
<div id="outline-container-sec-" class="outline-3">
|
|
<h3 id="sec-"><code>ds::plist::find</code></h3>
|
|
<div class="outline-text-3" id="text-">
|
|
<dl class="org-dl">
|
|
<dt> type </dt><dd><code>:lambda</code>
|
|
</dd>
|
|
<dt> arguments </dt><dd><dl class="org-dl">
|
|
<dt> postitional </dt><dd><code>plist</code>, <code>prop</code>
|
|
</dd>
|
|
</dl>
|
|
</dd>
|
|
<dt> docu </dt><dd>none
|
|
</dd>
|
|
</dl>
|
|
<hr/>
|
|
</div>
|
|
</div>
|
|
<div id="outline-container-sec-" class="outline-3">
|
|
<h3 id="sec-"><code>ds::plist::prop-exists?</code></h3>
|
|
<div class="outline-text-3" id="text-">
|
|
<dl class="org-dl">
|
|
<dt> type </dt><dd><code>:lambda</code>
|
|
</dd>
|
|
<dt> arguments </dt><dd><dl class="org-dl">
|
|
<dt> postitional </dt><dd><code>plist</code>, <code>prop</code>
|
|
</dd>
|
|
</dl>
|
|
</dd>
|
|
<dt> docu </dt><dd>none
|
|
</dd>
|
|
</dl>
|
|
<hr/>
|
|
</div>
|
|
</div>
|
|
<div id="outline-container-sec-" class="outline-3">
|
|
<h3 id="sec-"><code>ds::plist::remove!</code></h3>
|
|
<div class="outline-text-3" id="text-">
|
|
<dl class="org-dl">
|
|
<dt> type </dt><dd><code>:lambda</code>
|
|
</dd>
|
|
<dt> arguments </dt><dd><dl class="org-dl">
|
|
<dt> postitional </dt><dd><code>plist</code>, <code>prop</code>
|
|
</dd>
|
|
</dl>
|
|
</dd>
|
|
<dt> docu </dt><dd>none
|
|
</dd>
|
|
</dl>
|
|
<hr/>
|
|
</div>
|
|
</div>
|
|
<div id="outline-container-sec-" class="outline-3">
|
|
<h3 id="sec-"><code>ds::plist::set!</code></h3>
|
|
<div class="outline-text-3" id="text-">
|
|
<dl class="org-dl">
|
|
<dt> type </dt><dd><code>:lambda</code>
|
|
</dd>
|
|
<dt> arguments </dt><dd><dl class="org-dl">
|
|
<dt> postitional </dt><dd><code>plist</code>, <code>prop</code>, <code>value</code>
|
|
</dd>
|
|
</dl>
|
|
</dd>
|
|
<dt> docu </dt><dd>none
|
|
</dd>
|
|
</dl>
|
|
<hr/>
|
|
</div>
|
|
</div>
|
|
<div id="outline-container-sec-" class="outline-3">
|
|
<h3 id="sec-"><code>ds::plist::set-overwrite!</code></h3>
|
|
<div class="outline-text-3" id="text-">
|
|
<dl class="org-dl">
|
|
<dt> type </dt><dd><code>:lambda</code>
|
|
</dd>
|
|
<dt> arguments </dt><dd><dl class="org-dl">
|
|
<dt> postitional </dt><dd><code>plist</code>, <code>prop</code>, <code>value</code>
|
|
</dd>
|
|
</dl>
|
|
</dd>
|
|
<dt> docu </dt><dd>none
|
|
</dd>
|
|
</dl>
|
|
<hr/>
|
|
</div>
|
|
</div>
|
|
<div id="outline-container-sec-" class="outline-3">
|
|
<h3 id="sec-"><code>automata::make-dfa</code></h3>
|
|
<div class="outline-text-3" id="text-">
|
|
<dl class="org-dl">
|
|
<dt> type </dt><dd><code>:lambda</code>
|
|
</dd>
|
|
<dt> arguments </dt><dd><dl class="org-dl">
|
|
<dt> postitional </dt><dd><code>Q</code>, <code>S</code>, <code>delta</code>, <code>q0</code>, <code>F</code>
|
|
</dd>
|
|
</dl>
|
|
</dd>
|
|
<dt> docu </dt><dd>none
|
|
</dd>
|
|
</dl>
|
|
<hr/>
|
|
</div>
|
|
</div>
|
|
<div id="outline-container-sec-" class="outline-3">
|
|
<h3 id="sec-"><code>interpolation::lerp</code></h3>
|
|
<div class="outline-text-3" id="text-">
|
|
<dl class="org-dl">
|
|
<dt> type </dt><dd><code>:lambda</code>
|
|
</dd>
|
|
<dt> arguments </dt><dd><dl class="org-dl">
|
|
<dt> postitional </dt><dd><code>a</code>, <code>b</code>, <code>t</code>
|
|
</dd>
|
|
</dl>
|
|
</dd>
|
|
<dt> docu </dt><dd>none
|
|
</dd>
|
|
</dl>
|
|
<hr/>
|
|
</div>
|
|
</div>
|
|
<div id="outline-container-sec-" class="outline-3">
|
|
<h3 id="sec-"><code>interpolation::lerper</code></h3>
|
|
<div class="outline-text-3" id="text-">
|
|
<dl class="org-dl">
|
|
<dt> type </dt><dd><code>:lambda</code>
|
|
</dd>
|
|
<dt> arguments </dt><dd><dl class="org-dl">
|
|
<dt> postitional </dt><dd><code>a</code>, <code>b</code>
|
|
</dd>
|
|
</dl>
|
|
</dd>
|
|
<dt> docu </dt><dd>none
|
|
</dd>
|
|
</dl>
|
|
<hr/>
|
|
</div>
|
|
</div>
|
|
<div id="outline-container-sec-" class="outline-3">
|
|
<h3 id="sec-"><code>interpolation::stepped-lerper</code></h3>
|
|
<div class="outline-text-3" id="text-">
|
|
<dl class="org-dl">
|
|
<dt> type </dt><dd><code>:lambda</code>
|
|
</dd>
|
|
<dt> arguments </dt><dd><dl class="org-dl">
|
|
<dt> postitional </dt><dd><code>a</code>, <code>b</code>, <code>#steps</code>
|
|
</dd>
|
|
</dl>
|
|
</dd>
|
|
<dt> docu </dt><dd>none
|
|
</dd>
|
|
</dl>
|
|
<hr/>
|
|
</div>
|
|
</div>
|
|
<div id="outline-container-sec-" class="outline-3">
|
|
<h3 id="sec-"><code>interpolation::point-lerp</code></h3>
|
|
<div class="outline-text-3" id="text-">
|
|
<dl class="org-dl">
|
|
<dt> type </dt><dd><code>:lambda</code>
|
|
</dd>
|
|
<dt> arguments </dt><dd><dl class="org-dl">
|
|
<dt> postitional </dt><dd><code>p1</code>, <code>p2</code>, <code>t</code>
|
|
</dd>
|
|
</dl>
|
|
</dd>
|
|
<dt> docu </dt><dd>none
|
|
</dd>
|
|
</dl>
|
|
<hr/>
|
|
</div>
|
|
</div>
|
|
<div id="outline-container-sec-" class="outline-3">
|
|
<h3 id="sec-"><code>interpolation::point-lerper</code></h3>
|
|
<div class="outline-text-3" id="text-">
|
|
<dl class="org-dl">
|
|
<dt> type </dt><dd><code>:lambda</code>
|
|
</dd>
|
|
<dt> arguments </dt><dd><dl class="org-dl">
|
|
<dt> postitional </dt><dd><code>p1</code>, <code>p2</code>
|
|
</dd>
|
|
</dl>
|
|
</dd>
|
|
<dt> docu </dt><dd>none
|
|
</dd>
|
|
</dl>
|
|
<hr/>
|
|
</div>
|
|
</div>
|
|
<div id="outline-container-sec-" class="outline-3">
|
|
<h3 id="sec-"><code>interpolation::bezier2</code></h3>
|
|
<div class="outline-text-3" id="text-">
|
|
<dl class="org-dl">
|
|
<dt> type </dt><dd><code>:lambda</code>
|
|
</dd>
|
|
<dt> arguments </dt><dd><dl class="org-dl">
|
|
<dt> postitional </dt><dd><code>p1</code>, <code>p2</code>, <code>p3</code>, <code>t</code>
|
|
</dd>
|
|
</dl>
|
|
</dd>
|
|
<dt> docu </dt><dd>none
|
|
</dd>
|
|
</dl>
|
|
<hr/>
|
|
</div>
|
|
</div>
|
|
<div id="outline-container-sec-" class="outline-3">
|
|
<h3 id="sec-"><code>interpolation::bezierer2</code></h3>
|
|
<div class="outline-text-3" id="text-">
|
|
<dl class="org-dl">
|
|
<dt> type </dt><dd><code>:lambda</code>
|
|
</dd>
|
|
<dt> arguments </dt><dd><dl class="org-dl">
|
|
<dt> postitional </dt><dd><code>p1</code>, <code>p2</code>, <code>p3</code>
|
|
</dd>
|
|
</dl>
|
|
</dd>
|
|
<dt> docu </dt><dd>none
|
|
</dd>
|
|
</dl>
|
|
<hr/>
|
|
</div>
|
|
</div>
|
|
<div id="outline-container-sec-" class="outline-3">
|
|
<h3 id="sec-"><code>define-class</code></h3>
|
|
<div class="outline-text-3" id="text-">
|
|
<dl class="org-dl">
|
|
<dt> type </dt><dd><code>:macro</code>
|
|
</dd>
|
|
<dt> arguments </dt><dd><dl class="org-dl">
|
|
<dt> postitional </dt><dd><code>name-and-members</code>
|
|
</dd>
|
|
<dt> rest </dt><dd><code>body</code>
|
|
</dd>
|
|
</dl>
|
|
</dd>
|
|
<dt> docu </dt><dd>none
|
|
</dd>
|
|
</dl>
|
|
<hr/>
|
|
</div>
|
|
</div>
|
|
<div id="outline-container-sec-" class="outline-3">
|
|
<h3 id="sec-"><code>-></code></h3>
|
|
<div class="outline-text-3" id="text-">
|
|
<dl class="org-dl">
|
|
<dt> type </dt><dd><code>:macro</code>
|
|
</dd>
|
|
<dt> arguments </dt><dd><dl class="org-dl">
|
|
<dt> postitional </dt><dd><code>obj</code>, <code>meth</code>
|
|
</dd>
|
|
<dt> rest </dt><dd><code>args</code>
|
|
</dd>
|
|
</dl>
|
|
</dd>
|
|
<dt> docu </dt><dd>none
|
|
</dd>
|
|
</dl>
|
|
<hr/>
|
|
</div>
|
|
</div>
|
|
<div id="outline-container-sec-" class="outline-3">
|
|
<h3 id="sec-"><code>math::pi</code></h3>
|
|
<div class="outline-text-3" id="text-">
|
|
<dl class="org-dl">
|
|
<dt> type </dt><dd><code>:number</code>
|
|
</dd>
|
|
<dt> value </dt><dd><code>3.141593</code>
|
|
</dd>
|
|
<dt> docu </dt><dd>none
|
|
</dd>
|
|
</dl>
|
|
<hr/>
|
|
</div>
|
|
</div>
|
|
<div id="outline-container-sec-" class="outline-3">
|
|
<h3 id="sec-"><code>math::abs</code></h3>
|
|
<div class="outline-text-3" id="text-">
|
|
<dl class="org-dl">
|
|
<dt> type </dt><dd><code>:lambda</code>
|
|
</dd>
|
|
<dt> arguments </dt><dd><dl class="org-dl">
|
|
<dt> postitional </dt><dd><code>x</code>
|
|
</dd>
|
|
</dl>
|
|
</dd>
|
|
<dt> docu </dt><dd><p>
|
|
Accepts one argument and returns the absoulte value of it
|
|
</p>
|
|
</dd>
|
|
</dl>
|
|
<hr/>
|
|
</div>
|
|
</div>
|
|
<div id="outline-container-sec-" class="outline-3">
|
|
<h3 id="sec-"><code>math::sqrt</code></h3>
|
|
<div class="outline-text-3" id="text-">
|
|
<dl class="org-dl">
|
|
<dt> type </dt><dd><code>:lambda</code>
|
|
</dd>
|
|
<dt> arguments </dt><dd><dl class="org-dl">
|
|
<dt> postitional </dt><dd><code>x</code>
|
|
</dd>
|
|
</dl>
|
|
</dd>
|
|
<dt> docu </dt><dd><p>
|
|
Accepts one argument and returns the square root of it
|
|
</p>
|
|
</dd>
|
|
</dl>
|
|
<hr/>
|
|
</div>
|
|
</div>
|
|
<div id="outline-container-sec-" class="outline-3">
|
|
<h3 id="sec-"><code>math::make-vector3</code></h3>
|
|
<div class="outline-text-3" id="text-">
|
|
<dl class="org-dl">
|
|
<dt> type </dt><dd><code>:lambda</code>
|
|
</dd>
|
|
<dt> arguments </dt><dd><dl class="org-dl">
|
|
<dt> postitional </dt><dd><code>x</code>, <code>y</code>, <code>z</code>
|
|
</dd>
|
|
</dl>
|
|
</dd>
|
|
<dt> docu </dt><dd>none
|
|
</dd>
|
|
</dl>
|
|
<hr/>
|
|
</div>
|
|
</div>
|
|
<div id="outline-container-sec-" class="outline-3">
|
|
<h3 id="sec-"><code>set::make</code></h3>
|
|
<div class="outline-text-3" id="text-">
|
|
<dl class="org-dl">
|
|
<dt> type </dt><dd><code>:lambda</code>
|
|
</dd>
|
|
<dt> arguments </dt><dd><dl class="org-dl">
|
|
<dt> rest </dt><dd><code>vals</code>
|
|
</dd>
|
|
</dl>
|
|
</dd>
|
|
<dt> docu </dt><dd>none
|
|
</dd>
|
|
</dl>
|
|
<hr/>
|
|
</div>
|
|
</div>
|
|
<div id="outline-container-sec-" class="outline-3">
|
|
<h3 id="sec-"><code>set::find</code></h3>
|
|
<div class="outline-text-3" id="text-">
|
|
<dl class="org-dl">
|
|
<dt> type </dt><dd><code>:lambda</code>
|
|
</dd>
|
|
<dt> arguments </dt><dd><dl class="org-dl">
|
|
<dt> postitional </dt><dd><code>set</code>, <code>val</code>
|
|
</dd>
|
|
</dl>
|
|
</dd>
|
|
<dt> docu </dt><dd>none
|
|
</dd>
|
|
</dl>
|
|
<hr/>
|
|
</div>
|
|
</div>
|
|
<div id="outline-container-sec-" class="outline-3">
|
|
<h3 id="sec-"><code>set::contains?</code></h3>
|
|
<div class="outline-text-3" id="text-">
|
|
<dl class="org-dl">
|
|
<dt> type </dt><dd><code>:lambda</code>
|
|
</dd>
|
|
<dt> arguments </dt><dd><dl class="org-dl">
|
|
<dt> postitional </dt><dd><code>set</code>, <code>val</code>
|
|
</dd>
|
|
</dl>
|
|
</dd>
|
|
<dt> docu </dt><dd>none
|
|
</dd>
|
|
</dl>
|
|
<hr/>
|
|
</div>
|
|
</div>
|
|
<div id="outline-container-sec-" class="outline-3">
|
|
<h3 id="sec-"><code>set::insert!</code></h3>
|
|
<div class="outline-text-3" id="text-">
|
|
<dl class="org-dl">
|
|
<dt> type </dt><dd><code>:lambda</code>
|
|
</dd>
|
|
<dt> arguments </dt><dd><dl class="org-dl">
|
|
<dt> postitional </dt><dd><code>set</code>, <code>value</code>
|
|
</dd>
|
|
</dl>
|
|
</dd>
|
|
<dt> docu </dt><dd>none
|
|
</dd>
|
|
</dl>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div></div></div>
|
|
<footer id="postamble" class="">
|
|
<div><p class="author">Author: Felix Brendel</p>
|
|
<p class="date">Created: 2019-11-10 So 23:51</p>
|
|
<p class="creator"><a href="http://www.gnu.org/software/emacs/">Emacs</a> 26.3 (<a href="http://orgmode.org">Org-mode</a> 9.1.9)</p>
|
|
</div>
|
|
</footer>
|
|
</body>
|
|
</html>
|