No puede seleccionar más de 25 temas Los temas deben comenzar con una letra o número, pueden incluir guiones ('-') y pueden tener hasta 35 caracteres de largo.
 
 
 
 
 
 

3237 líneas
92 KiB

  1. <!doctype html>
  2. <html lang="en">
  3. <head>
  4. <title>The Slime 1.0 Manual</title>
  5. <!-- 2019-11-10 So 23:51 -->
  6. <meta charset="utf-8">
  7. <meta name="viewport" content="width=device-width, initial-scale=1">
  8. <meta name="generator" content="Org-mode">
  9. <meta name="author" content="Felix Brendel">
  10. <link href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.5/css/bootstrap.min.css" rel="stylesheet">
  11. <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
  12. <script src="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.5/js/bootstrap.min.js"></script>
  13. <style type="text/css">
  14. /* org mode styles on top of twbs */
  15. html {
  16. position: relative;
  17. min-height: 100%;
  18. }
  19. body {
  20. font-size: 18px;
  21. margin-bottom: 105px;
  22. }
  23. footer {
  24. position: absolute;
  25. bottom: 0;
  26. width: 100%;
  27. height: 101px;
  28. background-color: #f5f5f5;
  29. }
  30. footer > div {
  31. padding: 10px;
  32. }
  33. footer p {
  34. margin: 0 0 5px;
  35. text-align: center;
  36. font-size: 16px;
  37. }
  38. #table-of-contents {
  39. margin-top: 20px;
  40. margin-bottom: 20px;
  41. }
  42. blockquote p {
  43. font-size: 18px;
  44. }
  45. pre {
  46. font-size: 16px;
  47. }
  48. .footpara {
  49. display: inline-block;
  50. }
  51. figcaption {
  52. font-size: 16px;
  53. color: #666;
  54. font-style: italic;
  55. padding-bottom: 15px;
  56. }
  57. /* from twbs docs */
  58. .bs-docs-sidebar.affix {
  59. position: static;
  60. }
  61. @media (min-width: 768px) {
  62. .bs-docs-sidebar {
  63. padding-left: 20px;
  64. }
  65. }
  66. /* All levels of nav */
  67. .bs-docs-sidebar .nav > li > a {
  68. display: block;
  69. padding: 4px 20px;
  70. font-size: 14px;
  71. font-weight: 500;
  72. color: #999;
  73. }
  74. .bs-docs-sidebar .nav > li > a:hover,
  75. .bs-docs-sidebar .nav > li > a:focus {
  76. padding-left: 19px;
  77. color: #A1283B;
  78. text-decoration: none;
  79. background-color: transparent;
  80. border-left: 1px solid #A1283B;
  81. }
  82. .bs-docs-sidebar .nav > .active > a,
  83. .bs-docs-sidebar .nav > .active:hover > a,
  84. .bs-docs-sidebar .nav > .active:focus > a {
  85. padding-left: 18px;
  86. font-weight: bold;
  87. color: #A1283B;
  88. background-color: transparent;
  89. border-left: 2px solid #A1283B;
  90. }
  91. /* Nav: second level (shown on .active) */
  92. .bs-docs-sidebar .nav .nav {
  93. display: none; /* Hide by default, but at >768px, show it */
  94. padding-bottom: 10px;
  95. }
  96. .bs-docs-sidebar .nav .nav > li > a {
  97. padding-top: 1px;
  98. padding-bottom: 1px;
  99. padding-left: 30px;
  100. font-size: 12px;
  101. font-weight: normal;
  102. }
  103. .bs-docs-sidebar .nav .nav > li > a:hover,
  104. .bs-docs-sidebar .nav .nav > li > a:focus {
  105. padding-left: 29px;
  106. }
  107. .bs-docs-sidebar .nav .nav > .active > a,
  108. .bs-docs-sidebar .nav .nav > .active:hover > a,
  109. .bs-docs-sidebar .nav .nav > .active:focus > a {
  110. padding-left: 28px;
  111. font-weight: 500;
  112. }
  113. /* Nav: third level (shown on .active) */
  114. .bs-docs-sidebar .nav .nav .nav {
  115. padding-bottom: 10px;
  116. }
  117. .bs-docs-sidebar .nav .nav .nav > li > a {
  118. padding-top: 1px;
  119. padding-bottom: 1px;
  120. padding-left: 40px;
  121. font-size: 12px;
  122. font-weight: normal;
  123. }
  124. .bs-docs-sidebar .nav .nav .nav > li > a:hover,
  125. .bs-docs-sidebar .nav .nav .nav > li > a:focus {
  126. padding-left: 39px;
  127. }
  128. .bs-docs-sidebar .nav .nav .nav > .active > a,
  129. .bs-docs-sidebar .nav .nav .nav > .active:hover > a,
  130. .bs-docs-sidebar .nav .nav .nav > .active:focus > a {
  131. padding-left: 38px;
  132. font-weight: 500;
  133. }
  134. /* Show and affix the side nav when space allows it */
  135. @media (min-width: 992px) {
  136. .bs-docs-sidebar .nav > .active > ul {
  137. display: block;
  138. }
  139. /* Widen the fixed sidebar */
  140. .bs-docs-sidebar.affix,
  141. .bs-docs-sidebar.affix-bottom {
  142. width: 213px;
  143. }
  144. .bs-docs-sidebar.affix {
  145. position: fixed; /* Undo the static from mobile first approach */
  146. top: 20px;
  147. }
  148. .bs-docs-sidebar.affix-bottom {
  149. position: absolute; /* Undo the static from mobile first approach */
  150. }
  151. .bs-docs-sidebar.affix .bs-docs-sidenav,.bs-docs-sidebar.affix-bottom .bs-docs-sidenav {
  152. margin-top: 0;
  153. margin-bottom: 0
  154. }
  155. }
  156. @media (min-width: 1200px) {
  157. /* Widen the fixed sidebar again */
  158. .bs-docs-sidebar.affix-bottom,
  159. .bs-docs-sidebar.affix {
  160. width: 263px;
  161. }
  162. }
  163. </style>
  164. <script type="text/javascript">
  165. $(function() {
  166. 'use strict';
  167. $('.bs-docs-sidebar li').first().addClass('active');
  168. $(document.body).scrollspy({target: '.bs-docs-sidebar'});
  169. $('.bs-docs-sidebar').affix();
  170. });
  171. </script>
  172. <script type="text/x-mathjax-config">
  173. MathJax.Hub.Config({
  174. displayAlign: "center",
  175. displayIndent: "2em",
  176. messageStyle: "none",
  177. "HTML-CSS": {
  178. scale: 100,
  179. styles: {
  180. ".MathJax_Display": {
  181. "font-size": "100%"
  182. }
  183. }
  184. },
  185. "SVG": {
  186. scale: 100,
  187. styles: {
  188. ".MathJax_SVG_Display": {
  189. "font-size": "100%",
  190. "margin-left": "-2.281em"
  191. }
  192. }
  193. }
  194. });
  195. </script>
  196. <script type="text/javascript" src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS_SVG"></script>
  197. </head>
  198. <body>
  199. <div id="content" class="container">
  200. <div class="row"><div class="col-md-12"><h1 class="title">The Slime 1.0 Manual</h1>
  201. <div class="abstract">
  202. <p>
  203. abstract
  204. </p>
  205. </div>
  206. <p>
  207. \tableofcontents
  208. </p>
  209. <div id="outline-container-sec-1" class="outline-2">
  210. <h2 id="sec-1"><span class="section-number-2">1</span> Lisp languages</h2>
  211. <div class="outline-text-2" id="text-1">
  212. <p>
  213. Lisp is not one language but rather a family of programming languages. The family is devided by some
  214. characteristics. There are Lisp-1 and Lisp-2 dialects and there is a difference between a Lisp with
  215. lexical scoping as opposed to dynamic scoping. These differences will be explained in later
  216. sections.
  217. </p>
  218. <p>
  219. Like most Lisps, Slime is dynamically typed. That means that like in statically typed Languages
  220. Slime has different data types, but they are associated not with variables but with the Lisp objects
  221. themselves. Variables can be assigend Lisp objects of any internal type.
  222. </p>
  223. <p>
  224. The Lisp language family is known to be highly flexible and applicable in all areas by creating
  225. domain specific languages in Lisp itself through a powerful macro system. The central data structure
  226. in Lisp is the list. The reason why lisp is so powerful is because the program source code itself is
  227. represented as lists. The nested lists make up the syntax tree of the lisp program. It is therfore
  228. computationally easy to parse lisp programs as the source code itself is already structured in the
  229. form of the syntax tree; allowing for parsing in linear time.
  230. </p>
  231. <p>
  232. The macro system in Slime works by recognizing macros at parse-time and running them, and replacing
  233. the macro call in the program code with the return value of the macro and then checking if further
  234. macros have to be expanded in the replaced code. Therefore the macros can be used to pre-compute
  235. values or rewrite expressions (creating syntactic sugar) or themselves define macros.
  236. </p>
  237. </div>
  238. </div>
  239. <div id="outline-container-sec-2" class="outline-2">
  240. <h2 id="sec-2"><span class="section-number-2">2</span> Lists</h2>
  241. <div class="outline-text-2" id="text-2">
  242. <p>
  243. As mentioned in <a href="#sec-1">Lisp languages</a>, the central data structure in all Lisps is the list. Lists are
  244. implemented as singly linked lists, made up of pairs (historically called <code>cons-cells</code>), each pair
  245. 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
  246. constructed by the convention that the <code>first</code> field of a pair points to the first element of the
  247. list and the <code>rest</code> field points to the rest of the list. Following this description, the list is a
  248. recursive data structure. For the end of the list a special value <code>nil</code> is used in the <code>rest</code> field.
  249. </p>
  250. <p>
  251. A helpful way to visualize lists made up of pairs is using box diagrams. A simple box diagram can be
  252. seen in <a href="#simpleBoxDiagram">1</a>. Each rectangle is divided in two. The left part represents the <code>first</code>
  253. field, the right part represents the <code>rest</code>. The arrows point to the values in these fields.
  254. </p>
  255. <p>
  256. The diagram in <a href="#simpleBoxDiagram">1</a> shows a simple list containing the values 1, 2 and 3. The first pair
  257. stores the number 1 its <code>first</code> field and the <code>rest</code> points to the rest of the list. The last pair
  258. points to the special value <code>nil</code> in its <code>rest</code> to denote the end of the list.
  259. </p>
  260. <p>
  261. <a href="diagrams/list123.eps">diagrams/list123.eps</a>
  262. </p>
  263. <p>
  264. However the <code>rest</code> of a pair needs not to be a pair or nil, it could also point to any other value.
  265. By doing this the list is no longer "well formed" but rather "ill formed". Ill formed lsits can be
  266. used as an optimization when using the list for storing data. In <a href="#illFormedList">2</a> an ill formed list
  267. can be seen, that also contains the values 1, 2 and 3 but stores them using only two pairs instead
  268. of 3.
  269. </p>
  270. <p>
  271. <a href="diagrams/list12.3.eps">diagrams/list12.3.eps</a>
  272. </p>
  273. </div>
  274. <div id="outline-container-sec-2-1" class="outline-3">
  275. <h3 id="sec-2-1"><span class="section-number-3">2.1</span> representing lists in Lisp</h3>
  276. <div class="outline-text-3" id="text-2-1">
  277. <p>
  278. In Slime and in most Lisps, lists are represented using round parenthesis where <code>(</code> denotes the
  279. start of the list and <code>)</code> denotes the end. Eeach element inside these parenthesis separated by one
  280. or more spaces will be interpreted as an element of that list. For example the list from
  281. <a href="#simpleBoxDiagram">1</a> would be represented as <code>(1 2 3)</code>. During parse time, the Lisp parser transforms
  282. the parenthesised list into the pairs that are in the end stored in memory.
  283. </p>
  284. <p>
  285. To also be able to represent ill formed lists in Lisp there is a special syntax using the <code>.</code> (dot
  286. symbol). If the parser encounters a <code>.</code> inside of a list, it will treat the next element as the
  287. <code>rest</code>. If there is no or more than one element after the <code>.</code> an parsing error will be thrown. Using
  288. this syntax we can represent the ill formed list from <a href="#illFormedList">2</a> as <code>(1 2 . 3)</code>. We can also
  289. write well formed lists using the dot notation if we point the rest to another list. So the well
  290. formed list from <a href="#simpleBoxDiagram">1</a> can also be written as \[\texttt{(1 . (2 . (3)))}\]
  291. </p>
  292. </div>
  293. </div>
  294. <div id="outline-container-sec-2-2" class="outline-3">
  295. <h3 id="sec-2-2"><span class="section-number-3">2.2</span> representing function calls in Lisp</h3>
  296. <div class="outline-text-3" id="text-2-2">
  297. <p>
  298. 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
  299. explanation given in the section is wrong, it is in fact correct: the lisp parser will transform the
  300. lisp syntax into the pairs in memory. The reason we would get an error is, that when reading Lisp
  301. code, the Lisp interpreter first parses the code and then tries to evaluate it and return the result
  302. back to the user.
  303. </p>
  304. <p>
  305. In Lisp by default, a list corresponds to a function call. As mentioned in <a href="#sec-1">Lisp languages</a> Lisp
  306. represents lists and Lisp programms as lists. If a list is treated as a function call, the first
  307. element will be treated as the function and the rest of the elements will be the arguments to that
  308. function. If we would wnter <code>(1 2 3)</code> directly into the Lisp interpreter we would get an error
  309. saying it cannot find the function <code>1</code>.
  310. </p>
  311. <p>
  312. If we would want to compute the sum of the numbers 5 and 3 we could do this by invoking the <code>+</code>
  313. function with 5 and 3 as its arguments. <code>(+ 5 3)</code> will evaluate to 8. We can also nest functions
  314. calls and use the return values as parameters to other functions: <code>(+ (- 12 4) (/ 24 4))</code> will
  315. evaluate to 14. The box diagramm showing the internal structure of that computation can be seen in
  316. <a href="#moreComplexBoxDiagram">3</a>.
  317. </p>
  318. <p>
  319. <a href="diagrams/simpleMath.eps">diagrams/simpleMath.eps</a>
  320. </p>
  321. </div>
  322. </div>
  323. </div>
  324. <div id="outline-container-sec-3" class="outline-2">
  325. <h2 id="sec-3"><span class="section-number-2">3</span> Evaluation order</h2>
  326. <div class="outline-text-2" id="text-3">
  327. <p>
  328. As a first step of evaluation of a regular function, all its arguments are getting evaluated, and
  329. then the function is applied to the evaluated arguments. For example when evaluating the nested
  330. expression in <a href="#code:complex-math">1</a> the outermost function is the <code>+</code> function with three arguments: <code>(*
  331. 3 4)</code>, <code>(- 100 (+ 12 13 14 15))</code> and <code>2</code>. So before the outhermost <code>+</code> gets invoked, the three
  332. arguments are getting evaluated recursively.
  333. </p>
  334. <div class="org-src-container">
  335. <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>
  336. <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>
  337. <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>
  338. 2<span style="color: #ff1493;">)</span><span style="color: #ff8c00;">)</span>
  339. </pre>
  340. </div>
  341. <pre class="example">
  342. evaluates to =&gt;
  343. 60
  344. </pre>
  345. </div>
  346. <div id="outline-container-sec-3-1" class="outline-3">
  347. <h3 id="sec-3-1"><span class="section-number-3">3.1</span> Special forms</h3>
  348. <div class="outline-text-3" id="text-3-1">
  349. <p>
  350. The given evaluation rule &#x2013; to evaluate all the arguments first and then allpying them to the
  351. funciton &#x2013; as described in <a href="#sec-3">Evaluation order</a> is only valid for regular functions. There is a class
  352. of functions that do not follow this evaluation rule called <b>special forms</b>. Special forms are
  353. needed when you do not wish to evaluate all arguments. For example the built-in <code>if</code> function should
  354. only evaluate the "then-expression" if the condition evaluates to a truthy value and not otherwise.
  355. Consider the example in <a href="#code:special-forms">2</a>. The if expression only evaluates the then-expression. If
  356. the <code>if</code> function would follow the evaluation order of regular functions, first all three arguments
  357. <code>(&lt; 1 2)</code>, <code>(print "I knew it!!\n")</code> but also <code>(print "Oh, it is not?!\n")</code> could get evaluated and
  358. so both messages would be printed. In the given <code>if</code> expression, the condition evaluates to a truthy
  359. value and only <code>I knew it!!</code> will be printed.
  360. </p>
  361. <div class="org-src-container">
  362. <label class="org-src-name">The <code>if</code> function is a special form because it does not evaluate all of its arguments</label>
  363. <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;">&lt;</span> 1 2<span style="color: #ff1493;">)</span>
  364. <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>
  365. <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>
  366. </pre>
  367. </div>
  368. <pre class="example">
  369. evaluates to =&gt;
  370. I knew it!!
  371. </pre>
  372. <p>
  373. The programmer can also define their own special forms using <code>special-lambda</code> and macros, which will
  374. be explained in <a href="#sec-6-1">Special lambdas</a> and <a href="#sec-9">Macros</a>.
  375. </p>
  376. </div>
  377. </div>
  378. </div>
  379. <div id="outline-container-sec-4" class="outline-2">
  380. <h2 id="sec-4"><span class="section-number-2">4</span> Symbols and keywords</h2>
  381. </div>
  382. <div id="outline-container-sec-5" class="outline-2">
  383. <h2 id="sec-5"><span class="section-number-2">5</span> Truthyness</h2>
  384. </div>
  385. <div id="outline-container-sec-6" class="outline-2">
  386. <h2 id="sec-6"><span class="section-number-2">6</span> Lambdas</h2>
  387. <div class="outline-text-2" id="text-6">
  388. <p>
  389. Slime allows for creating anonymous functions called <b>lambdas</b>. We did not talk about binding
  390. variables, we will do this in <a href="#sec-7">Define</a>, but we can still use lambdas now. Remember that Lisp
  391. interpretes the first argument of a list in the source code as a function and the rest as the
  392. arguments. The <code>lambda</code> special form evaluates to a <b>regular function object</b> that can then stand in
  393. the first position of the function call list. The basic syntax for the lambda special form is:
  394. \[\texttt{(lambda (arg1 arg2 ...) (body1) ...)}\] the first arguemnt to <code>lambda</code> is a list of the
  395. arguments. All the following arguments will be the body of the lambda. They will be executed when
  396. the lambda is invoked. The return value of a lambda is the value of the last evaluated expression in
  397. the body.
  398. </p>
  399. <p>
  400. Probably the simplest function to write as a lambda is the identity function. It takes one argument
  401. and returns it. The identity lambda and a few other simple examples of lambdas can be seen in
  402. <a href="#code:simple-lambdas">3</a>.
  403. </p>
  404. <div class="org-src-container">
  405. <label class="org-src-name">Some simle lambdas</label>
  406. <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>
  407. <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>
  408. <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>
  409. </pre>
  410. </div>
  411. <pre class="example">
  412. evaluates to =&gt;
  413. 1
  414. 8
  415. (1 2 3)
  416. </pre>
  417. <p>
  418. Additionally Slime lambdas have the possibility to take <b>optional arguments</b> in the form of <b>keyword
  419. arguemnts</b> as well as a <b>rest argument</b> which allows for accepting any number of arguments. Since
  420. these concepts are most useful when the function is actually bound to a variable, they will be
  421. introduced when we learned how to do that in <a href="#sec-7">Define</a>.
  422. </p>
  423. </div>
  424. <div id="outline-container-sec-6-1" class="outline-3">
  425. <h3 id="sec-6-1"><span class="section-number-3">6.1</span> Special lambdas</h3>
  426. <div class="outline-text-3" id="text-6-1">
  427. <p>
  428. The <code>lambda</code> special form creates a function object that represents a regular function. So the basic
  429. evaluation rules count: when the lambda is invoked all it's arguments are evaluated and then the
  430. lambda is applied to the evaluated arguments. If this is not wanted in some rare cases, the
  431. programmer also has the possibility to define a special form using <code>special-lambda</code>, which, when
  432. invoked does not evaluare any argument. The programmer has to evaluate the arguments in the body
  433. themselves using <code>eval</code>. The rest of the syntax between <code>lambda</code> and <code>special-lambda</code> are the same.
  434. </p>
  435. <div class="org-src-container">
  436. <label class="org-src-name">Special lambdas do not evaluate their arguments</label>
  437. <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>
  438. <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>
  439. <span style="color: #46BA3C; font-style: italic;">;; </span><span style="color: #46BA3C; font-style: italic;">Special lambdas make it possible to write</span>
  440. <span style="color: #46BA3C; font-style: italic;">;; </span><span style="color: #46BA3C; font-style: italic;">code that inspects code</span>
  441. <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>
  442. <span style="color: #7fff00;">(</span>printf <span style="color: #2aa198;">"The function to be called is"</span>
  443. <span style="color: #00bfff;">(</span><span style="color: #859900;">first</span> expr<span style="color: #00bfff;">)</span>
  444. <span style="color: #2aa198;">"and the result is"</span>
  445. <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>
  446. <span style="color: #ff1493;">(</span><span style="color: #859900;">+</span> 1 2<span style="color: #ff1493;">)</span><span style="color: #ff8c00;">)</span>
  447. </pre>
  448. </div>
  449. <pre class="example">
  450. evaluates to =&gt;
  451. 3
  452. (+ 1 2)
  453. The function to be called is + and the result is 3.
  454. </pre>
  455. </div>
  456. </div>
  457. </div>
  458. <div id="outline-container-sec-7" class="outline-2">
  459. <h2 id="sec-7"><span class="section-number-2">7</span> Define</h2>
  460. <div class="outline-text-2" id="text-7">
  461. <p>
  462. To assign a value to a symbol you can use the <code>define</code> built-in special form. The syntax for
  463. <code>define</code> is: \[\texttt{(define symbol value)}\] and some usages can be seen in
  464. <a href="#code:variable-defines">5</a>.
  465. </p>
  466. <div class="org-src-container">
  467. <label class="org-src-name">Simple definition of variables</label>
  468. <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>
  469. <span style="color: #ff8c00;">(</span><span style="color: #859900;">define</span> var2 <span style="color: #d33682;">"Hello World"</span><span style="color: #ff8c00;">)</span>
  470. <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>
  471. <span style="color: #ff8c00;">(</span>printf var1 var2 var3<span style="color: #ff8c00;">)</span>
  472. </pre>
  473. </div>
  474. <pre class="example">
  475. evaluates to =&gt;
  476. 1 Hello World 3
  477. </pre>
  478. </div>
  479. <div id="outline-container-sec-7-1" class="outline-3">
  480. <h3 id="sec-7-1"><span class="section-number-3">7.1</span> Defining functions</h3>
  481. <div class="outline-text-3" id="text-7-1">
  482. <p>
  483. In <a href="#sec-6">Lambdas</a> we learned how to create function objects using the <code>lambda</code> built-in form. Using
  484. <code>define</code> every Lisp Object can be assigned to a symbol making no exception for the function objects.
  485. In <a href="#code:lambda-defines">6</a> you can see what that would look like.
  486. </p>
  487. <div class="org-src-container">
  488. <label class="org-src-name">Definition of functions using lambdas</label>
  489. <pre class="src src-slime" id="code:lambda-defines"><span style="color: #ff8c00;">(</span><span style="color: #859900;">define</span> hypothenuse
  490. <span style="color: #ff1493;">(</span><span style="color: #859900;">lambda</span> <span style="color: #7fff00;">(</span>a b<span style="color: #7fff00;">)</span>
  491. <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>
  492. <span style="color: #ff8c00;">(</span>printf <span style="color: #ff1493;">(</span>hypothenuse 3 4<span style="color: #ff1493;">)</span><span style="color: #ff8c00;">)</span>
  493. </pre>
  494. </div>
  495. <pre class="example">
  496. evaluates to =&gt;
  497. 5
  498. </pre>
  499. <p>
  500. Since defining functions is so common, there is a syntactic shorthand that does not require to write
  501. out the whole <code>lambda</code> definition. In this case the first argument to the call to <code>define</code> is a
  502. list. The frist element of the list is the name of the function to define and the other elemens are
  503. the arguments to that function. An example can be seen in <a href="#code:function-defines">7</a>. Note that the
  504. definition looks like a call to the function we are constructing, making it easier to see what a
  505. call to that function will look like.
  506. </p>
  507. <div class="org-src-container">
  508. <label class="org-src-name">Definition of functions using the shorthand syntax of define</label>
  509. <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>
  510. <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>
  511. <span style="color: #ff8c00;">(</span>printf <span style="color: #ff1493;">(</span>hypothenuse 3 4<span style="color: #ff1493;">)</span><span style="color: #ff8c00;">)</span>
  512. </pre>
  513. </div>
  514. <pre class="example">
  515. evaluates to =&gt;
  516. 5
  517. </pre>
  518. </div>
  519. </div>
  520. <div id="outline-container-sec-7-2" class="outline-3">
  521. <h3 id="sec-7-2"><span class="section-number-3">7.2</span> Functions with keyword arguments</h3>
  522. <div class="outline-text-3" id="text-7-2">
  523. <p>
  524. A sometimes more convenient way of passing arguments to a function is using keyword arguments. Using
  525. keyword arguments a function call could look like this: \[\texttt{(function :arg1 value1 :arg2
  526. value2)}\] here the function accepts two arguments named <code>arg1</code> and <code>arg2</code>. The user of this
  527. function can see more clearly excatly which argument will be assigned wich value. This notation also
  528. allows for switching the argument order. The following function call is equivalent to the call
  529. above. \[\texttt{(function :arg2 value2 :arg1 value1)}\].
  530. </p>
  531. <p>
  532. For this to work however, the function must be defined to accept these keyword arguments. To do this
  533. the special marker <code>:keys</code> has to be inserted into the argument list of a <code>lambda</code> or a function
  534. <code>define</code>. All following arguments <b>must</b> be supplied as keyword arguments, <i>unless</i> they are also
  535. supplied with a default value, in which case they do not need to be supplied. To attach a default
  536. value to a keyword argument, insert <code>:defaults-to &lt;value&gt;</code> after the keyword argument name. An
  537. example of all of this can be seen in <a href="#code:keyword-args">8</a>. Important note: keyword arguments must be
  538. defined and supplied after all the regular arguments.
  539. </p>
  540. <div class="org-src-container">
  541. <label class="org-src-name">A more complex functoin definition using keyword arguments</label>
  542. <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>
  543. key1
  544. key2 <span style="color: #6c71c4;">:defaults-to</span> 3
  545. key3<span style="color: #ff1493;">)</span>
  546. <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>
  547. key1
  548. key2
  549. key3<span style="color: #ff1493;">)</span><span style="color: #ff8c00;">)</span>
  550. <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>
  551. <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>
  552. <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>
  553. </pre>
  554. </div>
  555. <pre class="example">
  556. evaluates to =&gt;
  557. 36
  558. 54
  559. 54
  560. </pre>
  561. </div>
  562. </div>
  563. <div id="outline-container-sec-7-3" class="outline-3">
  564. <h3 id="sec-7-3"><span class="section-number-3">7.3</span> Functions with rest arguments</h3>
  565. <div class="outline-text-3" id="text-7-3">
  566. <p>
  567. If the programmer wants to create a function that can accept any number of arguments, they can use
  568. the <code>rest</code> argument. It is defined after the special marker <code>:rest</code> and after the rest argument, no
  569. other arguments can be defined. In the execution of the fuction, the rest arguent will be assigned
  570. to a list containing all the supplied values. The rest argument can be used in conjunction with the
  571. other argument types, regular arguments and keyword arguments.
  572. </p>
  573. <div class="org-src-container">
  574. <label class="org-src-name">A more complex functoin definition using keyword arguments</label>
  575. <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
  576. <span style="color: #6c71c4;">:keys</span>
  577. do-logging <span style="color: #6c71c4;">:defaults-to</span> <span style="color: #7fff00;">()</span>
  578. <span style="color: #6c71c4;">:rest</span> values<span style="color: #ff1493;">)</span>
  579. <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>
  580. <span style="color: #ff1493;">(</span>when do-logging
  581. <span style="color: #7fff00;">(</span>printf <span style="color: #2aa198;">"Executing operation"</span>
  582. operation
  583. <span style="color: #2aa198;">"agains the values"</span>
  584. values
  585. <span style="color: #2aa198;">"yielded:"</span>
  586. result<span style="color: #7fff00;">)</span><span style="color: #ff1493;">)</span>
  587. result<span style="color: #ff8c00;">)</span>
  588. <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>
  589. <span style="color: #ff8c00;">(</span>printf <span style="color: #ff1493;">(</span>execute-operation '*
  590. <span style="color: #6c71c4;">:do-logging</span> t
  591. 10 11<span style="color: #ff1493;">)</span><span style="color: #ff8c00;">)</span>
  592. </pre>
  593. </div>
  594. <pre class="example">
  595. evaluates to =&gt;
  596. 6
  597. Executing operation * agains values (10 11) yielded: 110
  598. 110
  599. </pre>
  600. </div>
  601. </div>
  602. </div>
  603. <div id="outline-container-sec-8" class="outline-2">
  604. <h2 id="sec-8"><span class="section-number-2">8</span> Environments</h2>
  605. </div>
  606. <div id="outline-container-sec-9" class="outline-2">
  607. <h2 id="sec-9"><span class="section-number-2">9</span> Macros</h2>
  608. </div>
  609. <div id="outline-container-sec-" class="outline-2">
  610. <h2 id="sec-">Built-in functions</h2>
  611. <div class="outline-text-2" id="text-">
  612. <hr/>
  613. </div>
  614. <div id="outline-container-sec-" class="outline-3">
  615. <h3 id="sec-"><code>continuation?</code></h3>
  616. <div class="outline-text-3" id="text-">
  617. <dl class="org-dl">
  618. <dt> type </dt><dd><code>:lambda</code>
  619. </dd>
  620. <dt> arguments </dt><dd><dl class="org-dl">
  621. <dt> postitional </dt><dd><code>x</code>
  622. </dd>
  623. </dl>
  624. </dd>
  625. <dt> docu </dt><dd><p>
  626. Checks if the argument is a continuation.
  627. </p>
  628. </dd>
  629. </dl>
  630. <hr/>
  631. </div>
  632. </div>
  633. <div id="outline-container-sec-" class="outline-3">
  634. <h3 id="sec-"><code>=</code></h3>
  635. <div class="outline-text-3" id="text-">
  636. <dl class="org-dl">
  637. <dt> type </dt><dd><code>:cfunction</code>
  638. </dd>
  639. <dt> docu </dt><dd><p>
  640. Takes 0 or more arguments and returns <code>t</code> if all arguments are equal and <code>()</code> otherwise.
  641. </p>
  642. </dd>
  643. </dl>
  644. <hr/>
  645. </div>
  646. </div>
  647. <div id="outline-container-sec-" class="outline-3">
  648. <h3 id="sec-"><code>+</code></h3>
  649. <div class="outline-text-3" id="text-">
  650. <dl class="org-dl">
  651. <dt> type </dt><dd><code>:cfunction</code>
  652. </dd>
  653. <dt> docu </dt><dd><p>
  654. TODO
  655. </p>
  656. </dd>
  657. </dl>
  658. <hr/>
  659. </div>
  660. </div>
  661. <div id="outline-container-sec-" class="outline-3">
  662. <h3 id="sec-"><code>get-random-between</code></h3>
  663. <div class="outline-text-3" id="text-">
  664. <dl class="org-dl">
  665. <dt> type </dt><dd><code>:cfunction</code>
  666. </dd>
  667. <dt> docu </dt><dd><p>
  668. TODO
  669. </p>
  670. </dd>
  671. </dl>
  672. <hr/>
  673. </div>
  674. </div>
  675. <div id="outline-container-sec-" class="outline-3">
  676. <h3 id="sec-"><code>lambda</code></h3>
  677. <div class="outline-text-3" id="text-">
  678. <dl class="org-dl">
  679. <dt> type </dt><dd><code>:cfunction</code>
  680. </dd>
  681. <dt> docu </dt><dd><p>
  682. TODO
  683. </p>
  684. </dd>
  685. </dl>
  686. <hr/>
  687. </div>
  688. </div>
  689. <div id="outline-container-sec-" class="outline-3">
  690. <h3 id="sec-"><code>info</code></h3>
  691. <div class="outline-text-3" id="text-">
  692. <dl class="org-dl">
  693. <dt> type </dt><dd><code>:cfunction</code>
  694. </dd>
  695. <dt> docu </dt><dd><p>
  696. TODO
  697. </p>
  698. </dd>
  699. </dl>
  700. <hr/>
  701. </div>
  702. </div>
  703. <div id="outline-container-sec-" class="outline-3">
  704. <h3 id="sec-"><code>addr-of</code></h3>
  705. <div class="outline-text-3" id="text-">
  706. <dl class="org-dl">
  707. <dt> type </dt><dd><code>:cfunction</code>
  708. </dd>
  709. <dt> docu </dt><dd><p>
  710. TODO
  711. </p>
  712. </dd>
  713. </dl>
  714. <hr/>
  715. </div>
  716. </div>
  717. <div id="outline-container-sec-" class="outline-3">
  718. <h3 id="sec-"><code>type</code>?=</h3>
  719. <div class="outline-text-3" id="text-">
  720. <dl class="org-dl">
  721. <dt> type </dt><dd><code>:lambda</code>
  722. </dd>
  723. <dt> arguments </dt><dd><dl class="org-dl">
  724. <dt> postitional </dt><dd><code>obj</code>, <code>typ</code>
  725. </dd>
  726. </dl>
  727. </dd>
  728. <dt> docu </dt><dd><p>
  729. Checks if the argument <code>obj</code> is of type <code>typ</code>
  730. </p>
  731. </dd>
  732. </dl>
  733. <hr/>
  734. </div>
  735. </div>
  736. <div id="outline-container-sec-" class="outline-3">
  737. <h3 id="sec-"><code>symbol?</code></h3>
  738. <div class="outline-text-3" id="text-">
  739. <dl class="org-dl">
  740. <dt> type </dt><dd><code>:lambda</code>
  741. </dd>
  742. <dt> arguments </dt><dd><dl class="org-dl">
  743. <dt> postitional </dt><dd><code>x</code>
  744. </dd>
  745. </dl>
  746. </dd>
  747. <dt> docu </dt><dd><p>
  748. Checks if the argument is a symbol.
  749. </p>
  750. </dd>
  751. </dl>
  752. <hr/>
  753. </div>
  754. </div>
  755. <div id="outline-container-sec-" class="outline-3">
  756. <h3 id="sec-"><code>macro?</code></h3>
  757. <div class="outline-text-3" id="text-">
  758. <dl class="org-dl">
  759. <dt> type </dt><dd><code>:lambda</code>
  760. </dd>
  761. <dt> arguments </dt><dd><dl class="org-dl">
  762. <dt> postitional </dt><dd><code>x</code>
  763. </dd>
  764. </dl>
  765. </dd>
  766. <dt> docu </dt><dd><p>
  767. Checks if the argument is a macro.
  768. </p>
  769. </dd>
  770. </dl>
  771. <hr/>
  772. </div>
  773. </div>
  774. <div id="outline-container-sec-" class="outline-3">
  775. <h3 id="sec-"><code>procedure?</code></h3>
  776. <div class="outline-text-3" id="text-">
  777. <dl class="org-dl">
  778. <dt> type </dt><dd><code>:lambda</code>
  779. </dd>
  780. <dt> arguments </dt><dd><dl class="org-dl">
  781. <dt> postitional </dt><dd><code>x</code>
  782. </dd>
  783. </dl>
  784. </dd>
  785. <dt> docu </dt><dd>none
  786. </dd>
  787. </dl>
  788. <hr/>
  789. </div>
  790. </div>
  791. <div id="outline-container-sec-" class="outline-3">
  792. <h3 id="sec-"><code>rest</code></h3>
  793. <div class="outline-text-3" id="text-">
  794. <dl class="org-dl">
  795. <dt> type </dt><dd><code>:cfunction</code>
  796. </dd>
  797. <dt> docu </dt><dd><p>
  798. TODO
  799. </p>
  800. </dd>
  801. </dl>
  802. <hr/>
  803. </div>
  804. </div>
  805. <div id="outline-container-sec-" class="outline-3">
  806. <h3 id="sec-"><code>type</code></h3>
  807. <div class="outline-text-3" id="text-">
  808. <dl class="org-dl">
  809. <dt> type </dt><dd><code>:cfunction</code>
  810. </dd>
  811. <dt> docu </dt><dd><p>
  812. TODO
  813. </p>
  814. </dd>
  815. </dl>
  816. <hr/>
  817. </div>
  818. </div>
  819. <div id="outline-container-sec-" class="outline-3">
  820. <h3 id="sec-"><code>print</code></h3>
  821. <div class="outline-text-3" id="text-">
  822. <dl class="org-dl">
  823. <dt> type </dt><dd><code>:cfunction</code>
  824. </dd>
  825. <dt> docu </dt><dd><p>
  826. TODO
  827. </p>
  828. </dd>
  829. </dl>
  830. <hr/>
  831. </div>
  832. </div>
  833. <div id="outline-container-sec-" class="outline-3">
  834. <h3 id="sec-"><code>import</code></h3>
  835. <div class="outline-text-3" id="text-">
  836. <dl class="org-dl">
  837. <dt> type </dt><dd><code>:cfunction</code>
  838. </dd>
  839. <dt> docu </dt><dd><p>
  840. TODO
  841. </p>
  842. </dd>
  843. </dl>
  844. <hr/>
  845. </div>
  846. </div>
  847. <div id="outline-container-sec-" class="outline-3">
  848. <h3 id="sec-"><code>symbol-&gt;keyword</code></h3>
  849. <div class="outline-text-3" id="text-">
  850. <dl class="org-dl">
  851. <dt> type </dt><dd><code>:cfunction</code>
  852. </dd>
  853. <dt> docu </dt><dd><p>
  854. TODO
  855. </p>
  856. </dd>
  857. </dl>
  858. <hr/>
  859. </div>
  860. </div>
  861. <div id="outline-container-sec-" class="outline-3">
  862. <h3 id="sec-"><code>pe</code></h3>
  863. <div class="outline-text-3" id="text-">
  864. <dl class="org-dl">
  865. <dt> type </dt><dd><code>:macro</code>
  866. </dd>
  867. <dt> arguments </dt><dd><dl class="org-dl">
  868. <dt> postitional </dt><dd><code>expr</code>
  869. </dd>
  870. </dl>
  871. </dd>
  872. <dt> docu </dt><dd>none
  873. </dd>
  874. </dl>
  875. <hr/>
  876. </div>
  877. </div>
  878. <div id="outline-container-sec-" class="outline-3">
  879. <h3 id="sec-"><code>stream-null?</code></h3>
  880. <div class="outline-text-3" id="text-">
  881. <dl class="org-dl">
  882. <dt> type </dt><dd><code>:lambda</code>
  883. </dd>
  884. <dt> arguments </dt><dd><dl class="org-dl">
  885. <dt> postitional </dt><dd><code>s</code>
  886. </dd>
  887. </dl>
  888. </dd>
  889. <dt> docu </dt><dd>none
  890. </dd>
  891. </dl>
  892. <hr/>
  893. </div>
  894. </div>
  895. <div id="outline-container-sec-" class="outline-3">
  896. <h3 id="sec-"><code>construct-list</code></h3>
  897. <div class="outline-text-3" id="text-">
  898. <dl class="org-dl">
  899. <dt> type </dt><dd><code>:macro</code>
  900. </dd>
  901. <dt> arguments </dt><dd><dl class="org-dl">
  902. <dt> rest </dt><dd><code>body</code>
  903. </dd>
  904. </dl>
  905. </dd>
  906. <dt> docu </dt><dd><div class="org-src-container">
  907. <pre class="src src-slime"><span style="color: #ff8c00;">(</span>construct-list
  908. i &lt;- '<span style="color: #ff1493;">(</span>1 2 3 4 5<span style="color: #ff1493;">)</span>
  909. yield <span style="color: #ff1493;">(</span><span style="color: #859900;">*</span> i i<span style="color: #ff1493;">)</span><span style="color: #ff8c00;">)</span>
  910. </pre>
  911. </div>
  912. <p>
  913. (construct-list
  914. i &lt;- '(1 2 3 4)
  915. j &lt;- '(A B)
  916. yield (pair i j))
  917. </p>
  918. <p>
  919. (construct-list
  920. i &lt;- '(1 2 3 4 5 6 7 8)
  921. if (= 0 (% i 2))
  922. yield i)
  923. </p>
  924. </dd>
  925. </dl>
  926. <hr/>
  927. </div>
  928. </div>
  929. <div id="outline-container-sec-" class="outline-3">
  930. <h3 id="sec-"><code>define</code></h3>
  931. <div class="outline-text-3" id="text-">
  932. <dl class="org-dl">
  933. <dt> type </dt><dd><code>:cfunction</code>
  934. </dd>
  935. <dt> docu </dt><dd><p>
  936. TODO
  937. </p>
  938. </dd>
  939. </dl>
  940. <hr/>
  941. </div>
  942. </div>
  943. <div id="outline-container-sec-" class="outline-3">
  944. <h3 id="sec-"><code>vector-length</code></h3>
  945. <div class="outline-text-3" id="text-">
  946. <dl class="org-dl">
  947. <dt> type </dt><dd><code>:cfunction</code>
  948. </dd>
  949. <dt> docu </dt><dd><p>
  950. TODO
  951. </p>
  952. </dd>
  953. </dl>
  954. <hr/>
  955. </div>
  956. </div>
  957. <div id="outline-container-sec-" class="outline-3">
  958. <h3 id="sec-"><code>/</code></h3>
  959. <div class="outline-text-3" id="text-">
  960. <dl class="org-dl">
  961. <dt> type </dt><dd><code>:cfunction</code>
  962. </dd>
  963. <dt> docu </dt><dd><p>
  964. TODO
  965. </p>
  966. </dd>
  967. </dl>
  968. <hr/>
  969. </div>
  970. </div>
  971. <div id="outline-container-sec-" class="outline-3">
  972. <h3 id="sec-"><code>quasiquote</code></h3>
  973. <div class="outline-text-3" id="text-">
  974. <dl class="org-dl">
  975. <dt> type </dt><dd><code>:cfunction</code>
  976. </dd>
  977. <dt> docu </dt><dd><p>
  978. TODO
  979. </p>
  980. </dd>
  981. </dl>
  982. <hr/>
  983. </div>
  984. </div>
  985. <div id="outline-container-sec-" class="outline-3">
  986. <h3 id="sec-"><code>or</code></h3>
  987. <div class="outline-text-3" id="text-">
  988. <dl class="org-dl">
  989. <dt> type </dt><dd><code>:cfunction</code>
  990. </dd>
  991. <dt> docu </dt><dd><p>
  992. TODO
  993. </p>
  994. </dd>
  995. </dl>
  996. <hr/>
  997. </div>
  998. </div>
  999. <div id="outline-container-sec-" class="outline-3">
  1000. <h3 id="sec-"><code>list</code></h3>
  1001. <div class="outline-text-3" id="text-">
  1002. <dl class="org-dl">
  1003. <dt> type </dt><dd><code>:cfunction</code>
  1004. </dd>
  1005. <dt> docu </dt><dd><p>
  1006. TODO
  1007. </p>
  1008. </dd>
  1009. </dl>
  1010. <hr/>
  1011. </div>
  1012. </div>
  1013. <div id="outline-container-sec-" class="outline-3">
  1014. <h3 id="sec-"><code>zip</code></h3>
  1015. <div class="outline-text-3" id="text-">
  1016. <dl class="org-dl">
  1017. <dt> type </dt><dd><code>:lambda</code>
  1018. </dd>
  1019. <dt> arguments </dt><dd><dl class="org-dl">
  1020. <dt> postitional </dt><dd><code>l1</code>, <code>l2</code>
  1021. </dd>
  1022. </dl>
  1023. </dd>
  1024. <dt> docu </dt><dd>none
  1025. </dd>
  1026. </dl>
  1027. <hr/>
  1028. </div>
  1029. </div>
  1030. <div id="outline-container-sec-" class="outline-3">
  1031. <h3 id="sec-"><code>generic-extend</code></h3>
  1032. <div class="outline-text-3" id="text-">
  1033. <dl class="org-dl">
  1034. <dt> type </dt><dd><code>:macro</code>
  1035. </dd>
  1036. <dt> arguments </dt><dd><dl class="org-dl">
  1037. <dt> postitional </dt><dd><code>args</code>
  1038. </dd>
  1039. <dt> rest </dt><dd><code>body</code>
  1040. </dd>
  1041. </dl>
  1042. </dd>
  1043. <dt> docu </dt><dd>none
  1044. </dd>
  1045. </dl>
  1046. <hr/>
  1047. </div>
  1048. </div>
  1049. <div id="outline-container-sec-" class="outline-3">
  1050. <h3 id="sec-"><code>pair?</code></h3>
  1051. <div class="outline-text-3" id="text-">
  1052. <dl class="org-dl">
  1053. <dt> type </dt><dd><code>:lambda</code>
  1054. </dd>
  1055. <dt> arguments </dt><dd><dl class="org-dl">
  1056. <dt> postitional </dt><dd><code>x</code>
  1057. </dd>
  1058. </dl>
  1059. </dd>
  1060. <dt> docu </dt><dd><p>
  1061. Checks if the argument is a pair.
  1062. </p>
  1063. </dd>
  1064. </dl>
  1065. <hr/>
  1066. </div>
  1067. </div>
  1068. <div id="outline-container-sec-" class="outline-3">
  1069. <h3 id="sec-"><code>end</code></h3>
  1070. <div class="outline-text-3" id="text-">
  1071. <dl class="org-dl">
  1072. <dt> type </dt><dd><code>:lambda</code>
  1073. </dd>
  1074. <dt> arguments </dt><dd><dl class="org-dl">
  1075. <dt> postitional </dt><dd><code>seq</code>
  1076. </dd>
  1077. </dl>
  1078. </dd>
  1079. <dt> docu </dt><dd><p>
  1080. Returns the last pair in the sqeuence.
  1081. </p>
  1082. <div class="org-src-container">
  1083. <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>
  1084. <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>
  1085. </pre>
  1086. </div>
  1087. </dd>
  1088. </dl>
  1089. <hr/>
  1090. </div>
  1091. </div>
  1092. <div id="outline-container-sec-" class="outline-3">
  1093. <h3 id="sec-"><code>decrement</code></h3>
  1094. <div class="outline-text-3" id="text-">
  1095. <dl class="org-dl">
  1096. <dt> type </dt><dd><code>:lambda</code>
  1097. </dd>
  1098. <dt> arguments </dt><dd><dl class="org-dl">
  1099. <dt> postitional </dt><dd><code>val</code>
  1100. </dd>
  1101. </dl>
  1102. </dd>
  1103. <dt> docu </dt><dd><p>
  1104. Subtracts one from the argument.
  1105. </p>
  1106. </dd>
  1107. </dl>
  1108. <hr/>
  1109. </div>
  1110. </div>
  1111. <div id="outline-container-sec-" class="outline-3">
  1112. <h3 id="sec-"><code>range-while</code></h3>
  1113. <div class="outline-text-3" id="text-">
  1114. <dl class="org-dl">
  1115. <dt> type </dt><dd><code>:lambda</code>
  1116. </dd>
  1117. <dt> arguments </dt><dd><dl class="org-dl">
  1118. <dt> keyword </dt><dd><code>from</code> <code>(0)</code>, <code>to</code>
  1119. </dd>
  1120. </dl>
  1121. </dd>
  1122. <dt> docu </dt><dd><p>
  1123. Returns a sequence of numbers starting with the number defined
  1124. by the key 'from' and ends with the number defined in 'to'.
  1125. </p>
  1126. </dd>
  1127. </dl>
  1128. <hr/>
  1129. </div>
  1130. </div>
  1131. <div id="outline-container-sec-" class="outline-3">
  1132. <h3 id="sec-"><code>mutate</code></h3>
  1133. <div class="outline-text-3" id="text-">
  1134. <dl class="org-dl">
  1135. <dt> type </dt><dd><code>:cfunction</code>
  1136. </dd>
  1137. <dt> docu </dt><dd><p>
  1138. TODO
  1139. </p>
  1140. </dd>
  1141. </dl>
  1142. <hr/>
  1143. </div>
  1144. </div>
  1145. <div id="outline-container-sec-" class="outline-3">
  1146. <h3 id="sec-"><code>&lt;</code></h3>
  1147. <div class="outline-text-3" id="text-">
  1148. <dl class="org-dl">
  1149. <dt> type </dt><dd><code>:cfunction</code>
  1150. </dd>
  1151. <dt> docu </dt><dd><p>
  1152. TODO
  1153. </p>
  1154. </dd>
  1155. </dl>
  1156. <hr/>
  1157. </div>
  1158. </div>
  1159. <div id="outline-container-sec-" class="outline-3">
  1160. <h3 id="sec-"><code>assert</code></h3>
  1161. <div class="outline-text-3" id="text-">
  1162. <dl class="org-dl">
  1163. <dt> type </dt><dd><code>:cfunction</code>
  1164. </dd>
  1165. <dt> docu </dt><dd><p>
  1166. TODO
  1167. </p>
  1168. </dd>
  1169. </dl>
  1170. <hr/>
  1171. </div>
  1172. </div>
  1173. <div id="outline-container-sec-" class="outline-3">
  1174. <h3 id="sec-"><code>set-car!</code></h3>
  1175. <div class="outline-text-3" id="text-">
  1176. <dl class="org-dl">
  1177. <dt> type </dt><dd><code>:cfunction</code>
  1178. </dd>
  1179. <dt> docu </dt><dd><p>
  1180. TODO
  1181. </p>
  1182. </dd>
  1183. </dl>
  1184. <hr/>
  1185. </div>
  1186. </div>
  1187. <div id="outline-container-sec-" class="outline-3">
  1188. <h3 id="sec-"><code>eval</code></h3>
  1189. <div class="outline-text-3" id="text-">
  1190. <dl class="org-dl">
  1191. <dt> type </dt><dd><code>:cfunction</code>
  1192. </dd>
  1193. <dt> docu </dt><dd><p>
  1194. TODO
  1195. </p>
  1196. </dd>
  1197. </dl>
  1198. <hr/>
  1199. </div>
  1200. </div>
  1201. <div id="outline-container-sec-" class="outline-3">
  1202. <h3 id="sec-"><code>vector</code></h3>
  1203. <div class="outline-text-3" id="text-">
  1204. <dl class="org-dl">
  1205. <dt> type </dt><dd><code>:cfunction</code>
  1206. </dd>
  1207. <dt> docu </dt><dd><p>
  1208. TODO
  1209. </p>
  1210. </dd>
  1211. </dl>
  1212. <hr/>
  1213. </div>
  1214. </div>
  1215. <div id="outline-container-sec-" class="outline-3">
  1216. <h3 id="sec-"><code>memstat</code></h3>
  1217. <div class="outline-text-3" id="text-">
  1218. <dl class="org-dl">
  1219. <dt> type </dt><dd><code>:cfunction</code>
  1220. </dd>
  1221. <dt> docu </dt><dd><p>
  1222. TODO
  1223. </p>
  1224. </dd>
  1225. </dl>
  1226. <hr/>
  1227. </div>
  1228. </div>
  1229. <div id="outline-container-sec-" class="outline-3">
  1230. <h3 id="sec-"><code>symbol-&gt;string</code></h3>
  1231. <div class="outline-text-3" id="text-">
  1232. <dl class="org-dl">
  1233. <dt> type </dt><dd><code>:cfunction</code>
  1234. </dd>
  1235. <dt> docu </dt><dd><p>
  1236. TODO
  1237. </p>
  1238. </dd>
  1239. </dl>
  1240. <hr/>
  1241. </div>
  1242. </div>
  1243. <div id="outline-container-sec-" class="outline-3">
  1244. <h3 id="sec-"><code>cond</code></h3>
  1245. <div class="outline-text-3" id="text-">
  1246. <dl class="org-dl">
  1247. <dt> type </dt><dd><code>:macro</code>
  1248. </dd>
  1249. <dt> arguments </dt><dd><dl class="org-dl">
  1250. <dt> rest </dt><dd><code>clauses</code>
  1251. </dd>
  1252. </dl>
  1253. </dd>
  1254. <dt> docu </dt><dd>none
  1255. </dd>
  1256. </dl>
  1257. <hr/>
  1258. </div>
  1259. </div>
  1260. <div id="outline-container-sec-" class="outline-3">
  1261. <h3 id="sec-"><code>reduce</code></h3>
  1262. <div class="outline-text-3" id="text-">
  1263. <dl class="org-dl">
  1264. <dt> type </dt><dd><code>:lambda</code>
  1265. </dd>
  1266. <dt> arguments </dt><dd><dl class="org-dl">
  1267. <dt> postitional </dt><dd><code>fun</code>, <code>seq</code>
  1268. </dd>
  1269. </dl>
  1270. </dd>
  1271. <dt> docu </dt><dd><p>
  1272. Takes a function and a sequence as arguments and applies the
  1273. function to the argument sequence. This only works correctly if the
  1274. given function accepts a variable amount of parameters. If your
  1275. funciton is limited to two arguments, use <a href="#sec-"><code>reduce-binary</code></a>
  1276. instead.
  1277. </p>
  1278. </dd>
  1279. </dl>
  1280. <hr/>
  1281. </div>
  1282. </div>
  1283. <div id="outline-container-sec-" class="outline-3">
  1284. <h3 id="sec-"><code>define-module</code></h3>
  1285. <div class="outline-text-3" id="text-">
  1286. <dl class="org-dl">
  1287. <dt> type </dt><dd><code>:macro</code>
  1288. </dd>
  1289. <dt> arguments </dt><dd><dl class="org-dl">
  1290. <dt> postitional </dt><dd><code>module-name</code>
  1291. </dd>
  1292. <dt> keyword </dt><dd><code>imports</code> <code>(())</code>, <code>exports</code>
  1293. </dd>
  1294. <dt> rest </dt><dd><code>body</code>
  1295. </dd>
  1296. </dl>
  1297. </dd>
  1298. <dt> docu </dt><dd>none
  1299. </dd>
  1300. </dl>
  1301. <hr/>
  1302. </div>
  1303. </div>
  1304. <div id="outline-container-sec-" class="outline-3">
  1305. <h3 id="sec-"><code>null?</code></h3>
  1306. <div class="outline-text-3" id="text-">
  1307. <dl class="org-dl">
  1308. <dt> type </dt><dd><code>:lambda</code>
  1309. </dd>
  1310. <dt> arguments </dt><dd><dl class="org-dl">
  1311. <dt> postitional </dt><dd><code>x</code>
  1312. </dd>
  1313. </dl>
  1314. </dd>
  1315. <dt> docu </dt><dd><p>
  1316. Checks if the argument is <code>nil</code>.
  1317. </p>
  1318. </dd>
  1319. </dl>
  1320. <hr/>
  1321. </div>
  1322. </div>
  1323. <div id="outline-container-sec-" class="outline-3">
  1324. <h3 id="sec-"><code>built-in-function?</code></h3>
  1325. <div class="outline-text-3" id="text-">
  1326. <dl class="org-dl">
  1327. <dt> type </dt><dd><code>:lambda</code>
  1328. </dd>
  1329. <dt> arguments </dt><dd><dl class="org-dl">
  1330. <dt> postitional </dt><dd><code>x</code>
  1331. </dd>
  1332. </dl>
  1333. </dd>
  1334. <dt> docu </dt><dd><p>
  1335. Checks if the argument is a built-in function.
  1336. </p>
  1337. </dd>
  1338. </dl>
  1339. <hr/>
  1340. </div>
  1341. </div>
  1342. <div id="outline-container-sec-" class="outline-3">
  1343. <h3 id="sec-"><code>list-without-index</code></h3>
  1344. <div class="outline-text-3" id="text-">
  1345. <dl class="org-dl">
  1346. <dt> type </dt><dd><code>:lambda</code>
  1347. </dd>
  1348. <dt> arguments </dt><dd><dl class="org-dl">
  1349. <dt> postitional </dt><dd><code>seq</code>, <code>index</code>
  1350. </dd>
  1351. </dl>
  1352. </dd>
  1353. <dt> docu </dt><dd>none
  1354. </dd>
  1355. </dl>
  1356. <hr/>
  1357. </div>
  1358. </div>
  1359. <div id="outline-container-sec-" class="outline-3">
  1360. <h3 id="sec-"><code>error</code></h3>
  1361. <div class="outline-text-3" id="text-">
  1362. <dl class="org-dl">
  1363. <dt> type </dt><dd><code>:cfunction</code>
  1364. </dd>
  1365. <dt> docu </dt><dd><p>
  1366. TODO
  1367. </p>
  1368. </dd>
  1369. </dl>
  1370. <hr/>
  1371. </div>
  1372. </div>
  1373. <div id="outline-container-sec-" class="outline-3">
  1374. <h3 id="sec-"><code>hm/set!</code></h3>
  1375. <div class="outline-text-3" id="text-">
  1376. <dl class="org-dl">
  1377. <dt> type </dt><dd><code>:cfunction</code>
  1378. </dd>
  1379. <dt> docu </dt><dd><p>
  1380. TODO
  1381. </p>
  1382. </dd>
  1383. </dl>
  1384. <hr/>
  1385. </div>
  1386. </div>
  1387. <div id="outline-container-sec-" class="outline-3">
  1388. <h3 id="sec-"><code>case</code></h3>
  1389. <div class="outline-text-3" id="text-">
  1390. <dl class="org-dl">
  1391. <dt> type </dt><dd><code>:macro</code>
  1392. </dd>
  1393. <dt> arguments </dt><dd><dl class="org-dl">
  1394. <dt> postitional </dt><dd><code>var</code>
  1395. </dd>
  1396. <dt> rest </dt><dd><code>clauses</code>
  1397. </dd>
  1398. </dl>
  1399. </dd>
  1400. <dt> docu </dt><dd>none
  1401. </dd>
  1402. </dl>
  1403. <hr/>
  1404. </div>
  1405. </div>
  1406. <div id="outline-container-sec-" class="outline-3">
  1407. <h3 id="sec-"><code>-</code></h3>
  1408. <div class="outline-text-3" id="text-">
  1409. <dl class="org-dl">
  1410. <dt> type </dt><dd><code>:cfunction</code>
  1411. </dd>
  1412. <dt> docu </dt><dd><p>
  1413. TODO
  1414. </p>
  1415. </dd>
  1416. </dl>
  1417. <hr/>
  1418. </div>
  1419. </div>
  1420. <div id="outline-container-sec-" class="outline-3">
  1421. <h3 id="sec-"><code>%</code></h3>
  1422. <div class="outline-text-3" id="text-">
  1423. <dl class="org-dl">
  1424. <dt> type </dt><dd><code>:cfunction</code>
  1425. </dd>
  1426. <dt> docu </dt><dd><p>
  1427. TODO
  1428. </p>
  1429. </dd>
  1430. </dl>
  1431. <hr/>
  1432. </div>
  1433. </div>
  1434. <div id="outline-container-sec-" class="outline-3">
  1435. <h3 id="sec-"><code>extend</code></h3>
  1436. <div class="outline-text-3" id="text-">
  1437. <dl class="org-dl">
  1438. <dt> type </dt><dd><code>:lambda</code>
  1439. </dd>
  1440. <dt> arguments </dt><dd><dl class="org-dl">
  1441. <dt> postitional </dt><dd><code>seq</code>, <code>elem</code>
  1442. </dd>
  1443. </dl>
  1444. </dd>
  1445. <dt> docu </dt><dd><p>
  1446. Extends a list with the given element, by putting it in
  1447. the (rest) of the last element of the sequence.
  1448. </p>
  1449. </dd>
  1450. </dl>
  1451. <hr/>
  1452. </div>
  1453. </div>
  1454. <div id="outline-container-sec-" class="outline-3">
  1455. <h3 id="sec-"><code>lambda?</code></h3>
  1456. <div class="outline-text-3" id="text-">
  1457. <dl class="org-dl">
  1458. <dt> type </dt><dd><code>:lambda</code>
  1459. </dd>
  1460. <dt> arguments </dt><dd><dl class="org-dl">
  1461. <dt> postitional </dt><dd><code>x</code>
  1462. </dd>
  1463. </dl>
  1464. </dd>
  1465. <dt> docu </dt><dd><p>
  1466. Checks if the argument is a function.
  1467. </p>
  1468. </dd>
  1469. </dl>
  1470. <hr/>
  1471. </div>
  1472. </div>
  1473. <div id="outline-container-sec-" class="outline-3">
  1474. <h3 id="sec-"><code>extend2</code></h3>
  1475. <div class="outline-text-3" id="text-">
  1476. <dl class="org-dl">
  1477. <dt> type </dt><dd><code>:lambda</code>
  1478. </dd>
  1479. <dt> arguments </dt><dd><dl class="org-dl">
  1480. <dt> postitional </dt><dd><code>seq</code>, <code>elem</code>
  1481. </dd>
  1482. </dl>
  1483. </dd>
  1484. <dt> docu </dt><dd><p>
  1485. Extends a list with the given element, by putting it in
  1486. the (rest) of the last element of the sequence.
  1487. </p>
  1488. </dd>
  1489. </dl>
  1490. <hr/>
  1491. </div>
  1492. </div>
  1493. <div id="outline-container-sec-" class="outline-3">
  1494. <h3 id="sec-"><code>length</code></h3>
  1495. <div class="outline-text-3" id="text-">
  1496. <dl class="org-dl">
  1497. <dt> type </dt><dd><code>:lambda</code>
  1498. </dd>
  1499. <dt> arguments </dt><dd><dl class="org-dl">
  1500. <dt> postitional </dt><dd><code>seq</code>
  1501. </dd>
  1502. </dl>
  1503. </dd>
  1504. <dt> docu </dt><dd><p>
  1505. Returns the length of the given sequence.
  1506. </p>
  1507. </dd>
  1508. </dl>
  1509. <hr/>
  1510. </div>
  1511. </div>
  1512. <div id="outline-container-sec-" class="outline-3">
  1513. <h3 id="sec-"><code>helper</code></h3>
  1514. <div class="outline-text-3" id="text-">
  1515. <dl class="org-dl">
  1516. <dt> type </dt><dd><code>:cfunction</code>
  1517. </dd>
  1518. <dt> docu </dt><dd></dd>
  1519. </dl>
  1520. <hr/>
  1521. </div>
  1522. </div>
  1523. <div id="outline-container-sec-" class="outline-3">
  1524. <h3 id="sec-"><code>&gt;</code></h3>
  1525. <div class="outline-text-3" id="text-">
  1526. <dl class="org-dl">
  1527. <dt> type </dt><dd><code>:cfunction</code>
  1528. </dd>
  1529. <dt> docu </dt><dd><p>
  1530. TODO
  1531. </p>
  1532. </dd>
  1533. </dl>
  1534. <hr/>
  1535. </div>
  1536. </div>
  1537. <div id="outline-container-sec-" class="outline-3">
  1538. <h3 id="sec-"><code>**</code></h3>
  1539. <div class="outline-text-3" id="text-">
  1540. <dl class="org-dl">
  1541. <dt> type </dt><dd><code>:cfunction</code>
  1542. </dd>
  1543. <dt> docu </dt><dd><p>
  1544. TODO
  1545. </p>
  1546. </dd>
  1547. </dl>
  1548. <hr/>
  1549. </div>
  1550. </div>
  1551. <div id="outline-container-sec-" class="outline-3">
  1552. <h3 id="sec-"><code>set!</code></h3>
  1553. <div class="outline-text-3" id="text-">
  1554. <dl class="org-dl">
  1555. <dt> type </dt><dd><code>:cfunction</code>
  1556. </dd>
  1557. <dt> docu </dt><dd><p>
  1558. TODO
  1559. </p>
  1560. </dd>
  1561. </dl>
  1562. <hr/>
  1563. </div>
  1564. </div>
  1565. <div id="outline-container-sec-" class="outline-3">
  1566. <h3 id="sec-"><code>if</code></h3>
  1567. <div class="outline-text-3" id="text-">
  1568. <dl class="org-dl">
  1569. <dt> type </dt><dd><code>:cfunction</code>
  1570. </dd>
  1571. <dt> docu </dt><dd><p>
  1572. TODO
  1573. </p>
  1574. </dd>
  1575. </dl>
  1576. <hr/>
  1577. </div>
  1578. </div>
  1579. <div id="outline-container-sec-" class="outline-3">
  1580. <h3 id="sec-"><code>quote</code></h3>
  1581. <div class="outline-text-3" id="text-">
  1582. <dl class="org-dl">
  1583. <dt> type </dt><dd><code>:cfunction</code>
  1584. </dd>
  1585. <dt> docu </dt><dd><p>
  1586. TODO
  1587. </p>
  1588. </dd>
  1589. </dl>
  1590. <hr/>
  1591. </div>
  1592. </div>
  1593. <div id="outline-container-sec-" class="outline-3">
  1594. <h3 id="sec-"><code>not</code></h3>
  1595. <div class="outline-text-3" id="text-">
  1596. <dl class="org-dl">
  1597. <dt> type </dt><dd><code>:cfunction</code>
  1598. </dd>
  1599. <dt> docu </dt><dd><p>
  1600. TODO
  1601. </p>
  1602. </dd>
  1603. </dl>
  1604. <hr/>
  1605. </div>
  1606. </div>
  1607. <div id="outline-container-sec-" class="outline-3">
  1608. <h3 id="sec-"><code>apply</code></h3>
  1609. <div class="outline-text-3" id="text-">
  1610. <dl class="org-dl">
  1611. <dt> type </dt><dd><code>:cfunction</code>
  1612. </dd>
  1613. <dt> docu </dt><dd><p>
  1614. TODO
  1615. </p>
  1616. </dd>
  1617. </dl>
  1618. <hr/>
  1619. </div>
  1620. </div>
  1621. <div id="outline-container-sec-" class="outline-3">
  1622. <h3 id="sec-"><code>create-hash-map</code></h3>
  1623. <div class="outline-text-3" id="text-">
  1624. <dl class="org-dl">
  1625. <dt> type </dt><dd><code>:cfunction</code>
  1626. </dd>
  1627. <dt> docu </dt><dd><p>
  1628. TODO
  1629. </p>
  1630. </dd>
  1631. </dl>
  1632. <hr/>
  1633. </div>
  1634. </div>
  1635. <div id="outline-container-sec-" class="outline-3">
  1636. <h3 id="sec-"><code>first</code></h3>
  1637. <div class="outline-text-3" id="text-">
  1638. <dl class="org-dl">
  1639. <dt> type </dt><dd><code>:cfunction</code>
  1640. </dd>
  1641. <dt> docu </dt><dd><p>
  1642. TODO
  1643. </p>
  1644. </dd>
  1645. </dl>
  1646. <hr/>
  1647. </div>
  1648. </div>
  1649. <div id="outline-container-sec-" class="outline-3">
  1650. <h3 id="sec-"><code>delete-type!</code></h3>
  1651. <div class="outline-text-3" id="text-">
  1652. <dl class="org-dl">
  1653. <dt> type </dt><dd><code>:cfunction</code>
  1654. </dd>
  1655. <dt> docu </dt><dd><p>
  1656. TODO
  1657. </p>
  1658. </dd>
  1659. </dl>
  1660. <hr/>
  1661. </div>
  1662. </div>
  1663. <div id="outline-container-sec-" class="outline-3">
  1664. <h3 id="sec-"><code>show</code></h3>
  1665. <div class="outline-text-3" id="text-">
  1666. <dl class="org-dl">
  1667. <dt> type </dt><dd><code>:cfunction</code>
  1668. </dd>
  1669. <dt> docu </dt><dd><p>
  1670. TODO
  1671. </p>
  1672. </dd>
  1673. </dl>
  1674. <hr/>
  1675. </div>
  1676. </div>
  1677. <div id="outline-container-sec-" class="outline-3">
  1678. <h3 id="sec-"><code>generate-docs</code></h3>
  1679. <div class="outline-text-3" id="text-">
  1680. <dl class="org-dl">
  1681. <dt> type </dt><dd><code>:cfunction</code>
  1682. </dd>
  1683. <dt> docu </dt><dd><p>
  1684. TODO
  1685. </p>
  1686. </dd>
  1687. </dl>
  1688. <hr/>
  1689. </div>
  1690. </div>
  1691. <div id="outline-container-sec-" class="outline-3">
  1692. <h3 id="sec-"><code>load</code></h3>
  1693. <div class="outline-text-3" id="text-">
  1694. <dl class="org-dl">
  1695. <dt> type </dt><dd><code>:cfunction</code>
  1696. </dd>
  1697. <dt> docu </dt><dd><p>
  1698. TODO
  1699. </p>
  1700. </dd>
  1701. </dl>
  1702. <hr/>
  1703. </div>
  1704. </div>
  1705. <div id="outline-container-sec-" class="outline-3">
  1706. <h3 id="sec-"><code>hm/get-or-nil</code></h3>
  1707. <div class="outline-text-3" id="text-">
  1708. <dl class="org-dl">
  1709. <dt> type </dt><dd><code>:lambda</code>
  1710. </dd>
  1711. <dt> arguments </dt><dd><dl class="org-dl">
  1712. <dt> postitional </dt><dd><code>hm</code>, <code>key</code>
  1713. </dd>
  1714. </dl>
  1715. </dd>
  1716. <dt> docu </dt><dd>none
  1717. </dd>
  1718. </dl>
  1719. <hr/>
  1720. </div>
  1721. </div>
  1722. <div id="outline-container-sec-" class="outline-3">
  1723. <h3 id="sec-"><code>the-empty-stream</code></h3>
  1724. <div class="outline-text-3" id="text-">
  1725. <dl class="org-dl">
  1726. <dt> type </dt><dd><code>:constructor</code>
  1727. </dd>
  1728. <dt> value </dt><dd><code>()</code>
  1729. </dd>
  1730. <dt> docu </dt><dd>none
  1731. </dd>
  1732. </dl>
  1733. <hr/>
  1734. </div>
  1735. </div>
  1736. <div id="outline-container-sec-" class="outline-3">
  1737. <h3 id="sec-"><code>force</code></h3>
  1738. <div class="outline-text-3" id="text-">
  1739. <dl class="org-dl">
  1740. <dt> type </dt><dd><code>:lambda</code>
  1741. </dd>
  1742. <dt> arguments </dt><dd><dl class="org-dl">
  1743. <dt> postitional </dt><dd><code>promise</code>
  1744. </dd>
  1745. </dl>
  1746. </dd>
  1747. <dt> docu </dt><dd>none
  1748. </dd>
  1749. </dl>
  1750. <hr/>
  1751. </div>
  1752. </div>
  1753. <div id="outline-container-sec-" class="outline-3">
  1754. <h3 id="sec-"><code>when</code></h3>
  1755. <div class="outline-text-3" id="text-">
  1756. <dl class="org-dl">
  1757. <dt> type </dt><dd><code>:macro</code>
  1758. </dd>
  1759. <dt> arguments </dt><dd><dl class="org-dl">
  1760. <dt> postitional </dt><dd><code>condition</code>
  1761. </dd>
  1762. <dt> rest </dt><dd><code>body</code>
  1763. </dd>
  1764. </dl>
  1765. </dd>
  1766. <dt> docu </dt><dd><p>
  1767. Special form for when multiple actions should be done if a
  1768. condition is true.
  1769. </p>
  1770. <div class="org-src-container">
  1771. <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>
  1772. <span style="color: #ff1493;">(</span><span style="color: #859900;">print</span> <span style="color: #2aa198;">"Hello "</span><span style="color: #ff1493;">)</span>
  1773. <span style="color: #ff1493;">(</span><span style="color: #859900;">print</span> <span style="color: #2aa198;">"from "</span><span style="color: #ff1493;">)</span>
  1774. <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>
  1775. <span style="color: #ff8c00;">(</span>when <span style="color: #ff1493;">()</span>
  1776. <span style="color: #ff1493;">(</span><span style="color: #859900;">print</span> <span style="color: #2aa198;">"Goodbye "</span><span style="color: #ff1493;">)</span>
  1777. <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>
  1778. </pre>
  1779. </div>
  1780. </dd>
  1781. </dl>
  1782. <hr/>
  1783. </div>
  1784. </div>
  1785. <div id="outline-container-sec-" class="outline-3">
  1786. <h3 id="sec-"><code>member?</code></h3>
  1787. <div class="outline-text-3" id="text-">
  1788. <dl class="org-dl">
  1789. <dt> type </dt><dd><code>:lambda</code>
  1790. </dd>
  1791. <dt> arguments </dt><dd><dl class="org-dl">
  1792. <dt> postitional </dt><dd><code>elem</code>, <code>seq</code>
  1793. </dd>
  1794. </dl>
  1795. </dd>
  1796. <dt> docu </dt><dd>none
  1797. </dd>
  1798. </dl>
  1799. <hr/>
  1800. </div>
  1801. </div>
  1802. <div id="outline-container-sec-" class="outline-3">
  1803. <h3 id="sec-"><code>number?</code></h3>
  1804. <div class="outline-text-3" id="text-">
  1805. <dl class="org-dl">
  1806. <dt> type </dt><dd><code>:lambda</code>
  1807. </dd>
  1808. <dt> arguments </dt><dd><dl class="org-dl">
  1809. <dt> postitional </dt><dd><code>x</code>
  1810. </dd>
  1811. </dl>
  1812. </dd>
  1813. <dt> docu </dt><dd><p>
  1814. Checks if the argument is a number.
  1815. </p>
  1816. </dd>
  1817. </dl>
  1818. <hr/>
  1819. </div>
  1820. </div>
  1821. <div id="outline-container-sec-" class="outline-3">
  1822. <h3 id="sec-"><code>sublist-starting-at-index</code></h3>
  1823. <div class="outline-text-3" id="text-">
  1824. <dl class="org-dl">
  1825. <dt> type </dt><dd><code>:lambda</code>
  1826. </dd>
  1827. <dt> arguments </dt><dd><dl class="org-dl">
  1828. <dt> postitional </dt><dd><code>seq</code>, <code>index</code>
  1829. </dd>
  1830. </dl>
  1831. </dd>
  1832. <dt> docu </dt><dd>none
  1833. </dd>
  1834. </dl>
  1835. <hr/>
  1836. </div>
  1837. </div>
  1838. <div id="outline-container-sec-" class="outline-3">
  1839. <h3 id="sec-"><code>increment</code></h3>
  1840. <div class="outline-text-3" id="text-">
  1841. <dl class="org-dl">
  1842. <dt> type </dt><dd><code>:lambda</code>
  1843. </dd>
  1844. <dt> arguments </dt><dd><dl class="org-dl">
  1845. <dt> postitional </dt><dd><code>val</code>
  1846. </dd>
  1847. </dl>
  1848. </dd>
  1849. <dt> docu </dt><dd><p>
  1850. Adds one to the argument.
  1851. </p>
  1852. </dd>
  1853. </dl>
  1854. <hr/>
  1855. </div>
  1856. </div>
  1857. <div id="outline-container-sec-" class="outline-3">
  1858. <h3 id="sec-"><code>pair</code></h3>
  1859. <div class="outline-text-3" id="text-">
  1860. <dl class="org-dl">
  1861. <dt> type </dt><dd><code>:cfunction</code>
  1862. </dd>
  1863. <dt> docu </dt><dd><p>
  1864. TODO
  1865. </p>
  1866. </dd>
  1867. </dl>
  1868. <hr/>
  1869. </div>
  1870. </div>
  1871. <div id="outline-container-sec-" class="outline-3">
  1872. <h3 id="sec-"><code>set-type!</code></h3>
  1873. <div class="outline-text-3" id="text-">
  1874. <dl class="org-dl">
  1875. <dt> type </dt><dd><code>:cfunction</code>
  1876. </dd>
  1877. <dt> docu </dt><dd><p>
  1878. TODO
  1879. </p>
  1880. </dd>
  1881. </dl>
  1882. <hr/>
  1883. </div>
  1884. </div>
  1885. <div id="outline-container-sec-" class="outline-3">
  1886. <h3 id="sec-"><code>mem-reset</code></h3>
  1887. <div class="outline-text-3" id="text-">
  1888. <dl class="org-dl">
  1889. <dt> type </dt><dd><code>:cfunction</code>
  1890. </dd>
  1891. <dt> docu </dt><dd><p>
  1892. TODO
  1893. </p>
  1894. </dd>
  1895. </dl>
  1896. <hr/>
  1897. </div>
  1898. </div>
  1899. <div id="outline-container-sec-" class="outline-3">
  1900. <h3 id="sec-"><code>mytry</code></h3>
  1901. <div class="outline-text-3" id="text-">
  1902. <dl class="org-dl">
  1903. <dt> type </dt><dd><code>:cfunction</code>
  1904. </dd>
  1905. <dt> docu </dt><dd><p>
  1906. TODO
  1907. </p>
  1908. </dd>
  1909. </dl>
  1910. <hr/>
  1911. </div>
  1912. </div>
  1913. <div id="outline-container-sec-" class="outline-3">
  1914. <h3 id="sec-"><code>string-&gt;symbol</code></h3>
  1915. <div class="outline-text-3" id="text-">
  1916. <dl class="org-dl">
  1917. <dt> type </dt><dd><code>:cfunction</code>
  1918. </dd>
  1919. <dt> docu </dt><dd><p>
  1920. TODO
  1921. </p>
  1922. </dd>
  1923. </dl>
  1924. <hr/>
  1925. </div>
  1926. </div>
  1927. <div id="outline-container-sec-" class="outline-3">
  1928. <h3 id="sec-"><code>delay</code></h3>
  1929. <div class="outline-text-3" id="text-">
  1930. <dl class="org-dl">
  1931. <dt> type </dt><dd><code>:macro</code>
  1932. </dd>
  1933. <dt> arguments </dt><dd><dl class="org-dl">
  1934. <dt> postitional </dt><dd><code>expr</code>
  1935. </dd>
  1936. </dl>
  1937. </dd>
  1938. <dt> docu </dt><dd>none
  1939. </dd>
  1940. </dl>
  1941. <hr/>
  1942. </div>
  1943. </div>
  1944. <div id="outline-container-sec-" class="outline-3">
  1945. <h3 id="sec-"><code>define-typed</code></h3>
  1946. <div class="outline-text-3" id="text-">
  1947. <dl class="org-dl">
  1948. <dt> type </dt><dd><code>:macro</code>
  1949. </dd>
  1950. <dt> arguments </dt><dd><dl class="org-dl">
  1951. <dt> postitional </dt><dd><code>args</code>
  1952. </dd>
  1953. <dt> rest </dt><dd><code>body</code>
  1954. </dd>
  1955. </dl>
  1956. </dd>
  1957. <dt> docu </dt><dd>none
  1958. </dd>
  1959. </dl>
  1960. <hr/>
  1961. </div>
  1962. </div>
  1963. <div id="outline-container-sec-" class="outline-3">
  1964. <h3 id="sec-"><code>vector-set!</code></h3>
  1965. <div class="outline-text-3" id="text-">
  1966. <dl class="org-dl">
  1967. <dt> type </dt><dd><code>:cfunction</code>
  1968. </dd>
  1969. <dt> docu </dt><dd><p>
  1970. TODO
  1971. </p>
  1972. </dd>
  1973. </dl>
  1974. <hr/>
  1975. </div>
  1976. </div>
  1977. <div id="outline-container-sec-" class="outline-3">
  1978. <h3 id="sec-"><code>&lt;=</code></h3>
  1979. <div class="outline-text-3" id="text-">
  1980. <dl class="org-dl">
  1981. <dt> type </dt><dd><code>:cfunction</code>
  1982. </dd>
  1983. <dt> docu </dt><dd><p>
  1984. TODO
  1985. </p>
  1986. </dd>
  1987. </dl>
  1988. <hr/>
  1989. </div>
  1990. </div>
  1991. <div id="outline-container-sec-" class="outline-3">
  1992. <h3 id="sec-"><code>bound?</code></h3>
  1993. <div class="outline-text-3" id="text-">
  1994. <dl class="org-dl">
  1995. <dt> type </dt><dd><code>:cfunction</code>
  1996. </dd>
  1997. <dt> docu </dt><dd><p>
  1998. TODO
  1999. </p>
  2000. </dd>
  2001. </dl>
  2002. <hr/>
  2003. </div>
  2004. </div>
  2005. <div id="outline-container-sec-" class="outline-3">
  2006. <h3 id="sec-"><code>hash-map-delete!</code></h3>
  2007. <div class="outline-text-3" id="text-">
  2008. <dl class="org-dl">
  2009. <dt> type </dt><dd><code>:cfunction</code>
  2010. </dd>
  2011. <dt> docu </dt><dd><p>
  2012. TODO
  2013. </p>
  2014. </dd>
  2015. </dl>
  2016. <hr/>
  2017. </div>
  2018. </div>
  2019. <div id="outline-container-sec-" class="outline-3">
  2020. <h3 id="sec-"><code>filter</code></h3>
  2021. <div class="outline-text-3" id="text-">
  2022. <dl class="org-dl">
  2023. <dt> type </dt><dd><code>:lambda</code>
  2024. </dd>
  2025. <dt> arguments </dt><dd><dl class="org-dl">
  2026. <dt> postitional </dt><dd><code>fun</code>, <code>seq</code>
  2027. </dd>
  2028. </dl>
  2029. </dd>
  2030. <dt> docu </dt><dd><p>
  2031. Takes a function and a sequence as arguments and applies the
  2032. function to every value in the sequence. If the result of that
  2033. funciton application returns a truthy value, the original value is
  2034. added to a list, which in the end is returned.
  2035. </p>
  2036. </dd>
  2037. </dl>
  2038. <hr/>
  2039. </div>
  2040. </div>
  2041. <div id="outline-container-sec-" class="outline-3">
  2042. <h3 id="sec-"><code>unzip</code></h3>
  2043. <div class="outline-text-3" id="text-">
  2044. <dl class="org-dl">
  2045. <dt> type </dt><dd><code>:lambda</code>
  2046. </dd>
  2047. <dt> arguments </dt><dd><dl class="org-dl">
  2048. <dt> postitional </dt><dd><code>lists</code>
  2049. </dd>
  2050. </dl>
  2051. </dd>
  2052. <dt> docu </dt><dd>none
  2053. </dd>
  2054. </dl>
  2055. <hr/>
  2056. </div>
  2057. </div>
  2058. <div id="outline-container-sec-" class="outline-3">
  2059. <h3 id="sec-"><code>types</code>?=</h3>
  2060. <div class="outline-text-3" id="text-">
  2061. <dl class="org-dl">
  2062. <dt> type </dt><dd><code>:lambda</code>
  2063. </dd>
  2064. <dt> arguments </dt><dd><dl class="org-dl">
  2065. <dt> rest </dt><dd><code>objs</code>
  2066. </dd>
  2067. </dl>
  2068. </dd>
  2069. <dt> docu </dt><dd>none
  2070. </dd>
  2071. </dl>
  2072. <hr/>
  2073. </div>
  2074. </div>
  2075. <div id="outline-container-sec-" class="outline-3">
  2076. <h3 id="sec-"><code>special-lambda?</code></h3>
  2077. <div class="outline-text-3" id="text-">
  2078. <dl class="org-dl">
  2079. <dt> type </dt><dd><code>:lambda</code>
  2080. </dd>
  2081. <dt> arguments </dt><dd><dl class="org-dl">
  2082. <dt> postitional </dt><dd><code>x</code>
  2083. </dd>
  2084. </dl>
  2085. </dd>
  2086. <dt> docu </dt><dd><p>
  2087. Checks if the argument is a special-lambda.
  2088. </p>
  2089. </dd>
  2090. </dl>
  2091. <hr/>
  2092. </div>
  2093. </div>
  2094. <div id="outline-container-sec-" class="outline-3">
  2095. <h3 id="sec-"><code>last</code></h3>
  2096. <div class="outline-text-3" id="text-">
  2097. <dl class="org-dl">
  2098. <dt> type </dt><dd><code>:lambda</code>
  2099. </dd>
  2100. <dt> arguments </dt><dd><dl class="org-dl">
  2101. <dt> postitional </dt><dd><code>seq</code>
  2102. </dd>
  2103. </dl>
  2104. </dd>
  2105. <dt> docu </dt><dd><p>
  2106. Returns the (first) of the last (pair) of the given sequence.
  2107. </p>
  2108. <div class="org-src-container">
  2109. <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>
  2110. <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>
  2111. </pre>
  2112. </div>
  2113. </dd>
  2114. </dl>
  2115. <hr/>
  2116. </div>
  2117. </div>
  2118. <div id="outline-container-sec-" class="outline-3">
  2119. <h3 id="sec-"><code>append</code></h3>
  2120. <div class="outline-text-3" id="text-">
  2121. <dl class="org-dl">
  2122. <dt> type </dt><dd><code>:lambda</code>
  2123. </dd>
  2124. <dt> arguments </dt><dd><dl class="org-dl">
  2125. <dt> postitional </dt><dd><code>seq</code>, <code>elem</code>
  2126. </dd>
  2127. </dl>
  2128. </dd>
  2129. <dt> docu </dt><dd><p>
  2130. Appends an element to a sequence, by extendeing the list
  2131. with (pair elem nil).
  2132. </p>
  2133. </dd>
  2134. </dl>
  2135. <hr/>
  2136. </div>
  2137. </div>
  2138. <div id="outline-container-sec-" class="outline-3">
  2139. <h3 id="sec-"><code>define-syntax</code></h3>
  2140. <div class="outline-text-3" id="text-">
  2141. <dl class="org-dl">
  2142. <dt> type </dt><dd><code>:cfunction</code>
  2143. </dd>
  2144. <dt> docu </dt><dd><p>
  2145. TODO
  2146. </p>
  2147. </dd>
  2148. </dl>
  2149. <hr/>
  2150. </div>
  2151. </div>
  2152. <div id="outline-container-sec-" class="outline-3">
  2153. <h3 id="sec-"><code>vector-ref</code></h3>
  2154. <div class="outline-text-3" id="text-">
  2155. <dl class="org-dl">
  2156. <dt> type </dt><dd><code>:cfunction</code>
  2157. </dd>
  2158. <dt> docu </dt><dd><p>
  2159. TODO
  2160. </p>
  2161. </dd>
  2162. </dl>
  2163. <hr/>
  2164. </div>
  2165. </div>
  2166. <div id="outline-container-sec-" class="outline-3">
  2167. <h3 id="sec-"><code>*</code></h3>
  2168. <div class="outline-text-3" id="text-">
  2169. <dl class="org-dl">
  2170. <dt> type </dt><dd><code>:cfunction</code>
  2171. </dd>
  2172. <dt> docu </dt><dd><p>
  2173. TODO
  2174. </p>
  2175. </dd>
  2176. </dl>
  2177. <hr/>
  2178. </div>
  2179. </div>
  2180. <div id="outline-container-sec-" class="outline-3">
  2181. <h3 id="sec-"><code>and</code></h3>
  2182. <div class="outline-text-3" id="text-">
  2183. <dl class="org-dl">
  2184. <dt> type </dt><dd><code>:cfunction</code>
  2185. </dd>
  2186. <dt> docu </dt><dd><p>
  2187. TODO
  2188. </p>
  2189. </dd>
  2190. </dl>
  2191. <hr/>
  2192. </div>
  2193. </div>
  2194. <div id="outline-container-sec-" class="outline-3">
  2195. <h3 id="sec-"><code>begin</code></h3>
  2196. <div class="outline-text-3" id="text-">
  2197. <dl class="org-dl">
  2198. <dt> type </dt><dd><code>:cfunction</code>
  2199. </dd>
  2200. <dt> docu </dt><dd><p>
  2201. TODO
  2202. </p>
  2203. </dd>
  2204. </dl>
  2205. <hr/>
  2206. </div>
  2207. </div>
  2208. <div id="outline-container-sec-" class="outline-3">
  2209. <h3 id="sec-"><code>hash-map-set!</code></h3>
  2210. <div class="outline-text-3" id="text-">
  2211. <dl class="org-dl">
  2212. <dt> type </dt><dd><code>:cfunction</code>
  2213. </dd>
  2214. <dt> docu </dt><dd><p>
  2215. TODO
  2216. </p>
  2217. </dd>
  2218. </dl>
  2219. <hr/>
  2220. </div>
  2221. </div>
  2222. <div id="outline-container-sec-" class="outline-3">
  2223. <h3 id="sec-"><code>copy</code></h3>
  2224. <div class="outline-text-3" id="text-">
  2225. <dl class="org-dl">
  2226. <dt> type </dt><dd><code>:cfunction</code>
  2227. </dd>
  2228. <dt> docu </dt><dd><p>
  2229. TODO
  2230. </p>
  2231. </dd>
  2232. </dl>
  2233. <hr/>
  2234. </div>
  2235. </div>
  2236. <div id="outline-container-sec-" class="outline-3">
  2237. <h3 id="sec-"><code>concat-strings</code></h3>
  2238. <div class="outline-text-3" id="text-">
  2239. <dl class="org-dl">
  2240. <dt> type </dt><dd><code>:cfunction</code>
  2241. </dd>
  2242. <dt> docu </dt><dd><p>
  2243. TODO
  2244. </p>
  2245. </dd>
  2246. </dl>
  2247. <hr/>
  2248. </div>
  2249. </div>
  2250. <div id="outline-container-sec-" class="outline-3">
  2251. <h3 id="sec-"><code>let</code></h3>
  2252. <div class="outline-text-3" id="text-">
  2253. <dl class="org-dl">
  2254. <dt> type </dt><dd><code>:macro</code>
  2255. </dd>
  2256. <dt> arguments </dt><dd><dl class="org-dl">
  2257. <dt> postitional </dt><dd><code>bindings</code>
  2258. </dd>
  2259. <dt> rest </dt><dd><code>body</code>
  2260. </dd>
  2261. </dl>
  2262. </dd>
  2263. <dt> docu </dt><dd>none
  2264. </dd>
  2265. </dl>
  2266. <hr/>
  2267. </div>
  2268. </div>
  2269. <div id="outline-container-sec-" class="outline-3">
  2270. <h3 id="sec-"><code>enumerate</code></h3>
  2271. <div class="outline-text-3" id="text-">
  2272. <dl class="org-dl">
  2273. <dt> type </dt><dd><code>:lambda</code>
  2274. </dd>
  2275. <dt> arguments </dt><dd><dl class="org-dl">
  2276. <dt> postitional </dt><dd><code>seq</code>
  2277. </dd>
  2278. </dl>
  2279. </dd>
  2280. <dt> docu </dt><dd>none
  2281. </dd>
  2282. </dl>
  2283. <hr/>
  2284. </div>
  2285. </div>
  2286. <div id="outline-container-sec-" class="outline-3">
  2287. <h3 id="sec-"><code>assert-types=</code></h3>
  2288. <div class="outline-text-3" id="text-">
  2289. <dl class="org-dl">
  2290. <dt> type </dt><dd><code>:lambda</code>
  2291. </dd>
  2292. <dt> arguments </dt><dd><dl class="org-dl">
  2293. <dt> rest </dt><dd><code>objs</code>
  2294. </dd>
  2295. </dl>
  2296. </dd>
  2297. <dt> docu </dt><dd>none
  2298. </dd>
  2299. </dl>
  2300. <hr/>
  2301. </div>
  2302. </div>
  2303. <div id="outline-container-sec-" class="outline-3">
  2304. <h3 id="sec-"><code>keyword?</code></h3>
  2305. <div class="outline-text-3" id="text-">
  2306. <dl class="org-dl">
  2307. <dt> type </dt><dd><code>:lambda</code>
  2308. </dd>
  2309. <dt> arguments </dt><dd><dl class="org-dl">
  2310. <dt> postitional </dt><dd><code>x</code>
  2311. </dd>
  2312. </dl>
  2313. </dd>
  2314. <dt> docu </dt><dd><p>
  2315. Checks if the argument is a keyword.
  2316. </p>
  2317. </dd>
  2318. </dl>
  2319. <hr/>
  2320. </div>
  2321. </div>
  2322. <div id="outline-container-sec-" class="outline-3">
  2323. <h3 id="sec-"><code>string?</code></h3>
  2324. <div class="outline-text-3" id="text-">
  2325. <dl class="org-dl">
  2326. <dt> type </dt><dd><code>:lambda</code>
  2327. </dd>
  2328. <dt> arguments </dt><dd><dl class="org-dl">
  2329. <dt> postitional </dt><dd><code>x</code>
  2330. </dd>
  2331. </dl>
  2332. </dd>
  2333. <dt> docu </dt><dd><p>
  2334. Checks if the argument is a string.
  2335. </p>
  2336. </dd>
  2337. </dl>
  2338. <hr/>
  2339. </div>
  2340. </div>
  2341. <div id="outline-container-sec-" class="outline-3">
  2342. <h3 id="sec-"><code>range</code></h3>
  2343. <div class="outline-text-3" id="text-">
  2344. <dl class="org-dl">
  2345. <dt> type </dt><dd><code>:lambda</code>
  2346. </dd>
  2347. <dt> arguments </dt><dd><dl class="org-dl">
  2348. <dt> keyword </dt><dd><code>from</code> <code>(0)</code>, <code>to</code>
  2349. </dd>
  2350. </dl>
  2351. </dd>
  2352. <dt> docu </dt><dd><p>
  2353. Returns a sequence of numbers starting with the number defined
  2354. by the key <code>from</code> and ends with the number defined in <code>to</code>.
  2355. </p>
  2356. </dd>
  2357. </dl>
  2358. <hr/>
  2359. </div>
  2360. </div>
  2361. <div id="outline-container-sec-" class="outline-3">
  2362. <h3 id="sec-"><code>map</code></h3>
  2363. <div class="outline-text-3" id="text-">
  2364. <dl class="org-dl">
  2365. <dt> type </dt><dd><code>:lambda</code>
  2366. </dd>
  2367. <dt> arguments </dt><dd><dl class="org-dl">
  2368. <dt> postitional </dt><dd><code>fun</code>, <code>seq</code>
  2369. </dd>
  2370. </dl>
  2371. </dd>
  2372. <dt> docu </dt><dd><p>
  2373. Takes a function and a sequence as arguments and returns a new
  2374. sequence which contains the results of using the first sequences
  2375. elemens as argument to that function.
  2376. </p>
  2377. </dd>
  2378. </dl>
  2379. <hr/>
  2380. </div>
  2381. </div>
  2382. <div id="outline-container-sec-" class="outline-3">
  2383. <h3 id="sec-"><code>read</code></h3>
  2384. <div class="outline-text-3" id="text-">
  2385. <dl class="org-dl">
  2386. <dt> type </dt><dd><code>:cfunction</code>
  2387. </dd>
  2388. <dt> docu </dt><dd><p>
  2389. TODO
  2390. </p>
  2391. </dd>
  2392. </dl>
  2393. <hr/>
  2394. </div>
  2395. </div>
  2396. <div id="outline-container-sec-" class="outline-3">
  2397. <h3 id="sec-"><code>exit</code></h3>
  2398. <div class="outline-text-3" id="text-">
  2399. <dl class="org-dl">
  2400. <dt> type </dt><dd><code>:cfunction</code>
  2401. </dd>
  2402. <dt> docu </dt><dd><p>
  2403. TODO
  2404. </p>
  2405. </dd>
  2406. </dl>
  2407. <hr/>
  2408. </div>
  2409. </div>
  2410. <div id="outline-container-sec-" class="outline-3">
  2411. <h3 id="sec-"><code>break</code></h3>
  2412. <div class="outline-text-3" id="text-">
  2413. <dl class="org-dl">
  2414. <dt> type </dt><dd><code>:cfunction</code>
  2415. </dd>
  2416. <dt> docu </dt><dd><p>
  2417. TODO
  2418. </p>
  2419. </dd>
  2420. </dl>
  2421. <hr/>
  2422. </div>
  2423. </div>
  2424. <div id="outline-container-sec-" class="outline-3">
  2425. <h3 id="sec-"><code>hm/get</code></h3>
  2426. <div class="outline-text-3" id="text-">
  2427. <dl class="org-dl">
  2428. <dt> type </dt><dd><code>:cfunction</code>
  2429. </dd>
  2430. <dt> docu </dt><dd><p>
  2431. TODO
  2432. </p>
  2433. </dd>
  2434. </dl>
  2435. <hr/>
  2436. </div>
  2437. </div>
  2438. <div id="outline-container-sec-" class="outline-3">
  2439. <h3 id="sec-"><code>unless</code></h3>
  2440. <div class="outline-text-3" id="text-">
  2441. <dl class="org-dl">
  2442. <dt> type </dt><dd><code>:macro</code>
  2443. </dd>
  2444. <dt> arguments </dt><dd><dl class="org-dl">
  2445. <dt> postitional </dt><dd><code>condition</code>
  2446. </dd>
  2447. <dt> rest </dt><dd><code>body</code>
  2448. </dd>
  2449. </dl>
  2450. </dd>
  2451. <dt> docu </dt><dd><p>
  2452. Special form for when multiple actions should be done if a
  2453. condition is false.
  2454. </p>
  2455. </dd>
  2456. </dl>
  2457. <hr/>
  2458. </div>
  2459. </div>
  2460. <div id="outline-container-sec-" class="outline-3">
  2461. <h3 id="sec-"><code>n-times</code></h3>
  2462. <div class="outline-text-3" id="text-">
  2463. <dl class="org-dl">
  2464. <dt> type </dt><dd><code>:macro</code>
  2465. </dd>
  2466. <dt> arguments </dt><dd><dl class="org-dl">
  2467. <dt> postitional </dt><dd><code>times</code>, <code>action</code>
  2468. </dd>
  2469. </dl>
  2470. </dd>
  2471. <dt> docu </dt><dd><p>
  2472. Executes action times times.
  2473. </p>
  2474. </dd>
  2475. </dl>
  2476. <hr/>
  2477. </div>
  2478. </div>
  2479. <div id="outline-container-sec-" class="outline-3">
  2480. <h3 id="sec-"><code>test</code></h3>
  2481. <div class="outline-text-3" id="text-">
  2482. <dl class="org-dl">
  2483. <dt> type </dt><dd><code>:cfunction</code>
  2484. </dd>
  2485. <dt> docu </dt><dd></dd>
  2486. </dl>
  2487. <hr/>
  2488. </div>
  2489. </div>
  2490. <div id="outline-container-sec-" class="outline-3">
  2491. <h3 id="sec-"><code>&gt;=</code></h3>
  2492. <div class="outline-text-3" id="text-">
  2493. <dl class="org-dl">
  2494. <dt> type </dt><dd><code>:cfunction</code>
  2495. </dd>
  2496. <dt> docu </dt><dd><p>
  2497. TODO
  2498. </p>
  2499. </dd>
  2500. </dl>
  2501. <hr/>
  2502. </div>
  2503. </div>
  2504. <div id="outline-container-sec-" class="outline-3">
  2505. <h3 id="sec-"><code>set-cdr!</code></h3>
  2506. <div class="outline-text-3" id="text-">
  2507. <dl class="org-dl">
  2508. <dt> type </dt><dd><code>:cfunction</code>
  2509. </dd>
  2510. <dt> docu </dt><dd><p>
  2511. TODO
  2512. </p>
  2513. </dd>
  2514. </dl>
  2515. <hr/>
  2516. </div>
  2517. </div>
  2518. <div id="outline-container-sec-" class="outline-3">
  2519. <h3 id="sec-"><code>hash-map-get</code></h3>
  2520. <div class="outline-text-3" id="text-">
  2521. <dl class="org-dl">
  2522. <dt> type </dt><dd><code>:cfunction</code>
  2523. </dd>
  2524. <dt> docu </dt><dd><p>
  2525. TODO
  2526. </p>
  2527. </dd>
  2528. </dl>
  2529. <hr/>
  2530. </div>
  2531. </div>
  2532. <div id="outline-container-sec-" class="outline-3">
  2533. <h3 id="sec-"><code>reduce-binary</code></h3>
  2534. <div class="outline-text-3" id="text-">
  2535. <dl class="org-dl">
  2536. <dt> type </dt><dd><code>:lambda</code>
  2537. </dd>
  2538. <dt> arguments </dt><dd><dl class="org-dl">
  2539. <dt> postitional </dt><dd><code>fun</code>, <code>seq</code>
  2540. </dd>
  2541. </dl>
  2542. </dd>
  2543. <dt> docu </dt><dd><p>
  2544. Takes a function and a sequence as arguments and applies the
  2545. function to the argument sequence. reduce-binary applies the arguments
  2546. <b>pair-wise</b> which means it works with binary functions as compared to
  2547. <a href="#sec-"><code>reduce</code></a>.
  2548. </p>
  2549. </dd>
  2550. </dl>
  2551. <hr/>
  2552. </div>
  2553. </div>
  2554. <div id="outline-container-sec-" class="outline-3">
  2555. <h3 id="sec-"><code>ds::alist::make</code></h3>
  2556. <div class="outline-text-3" id="text-">
  2557. <dl class="org-dl">
  2558. <dt> type </dt><dd><code>:lambda</code>
  2559. </dd>
  2560. <dt> arguments </dt><dd>none.
  2561. </dd>
  2562. <dt> docu </dt><dd>none
  2563. </dd>
  2564. </dl>
  2565. <hr/>
  2566. </div>
  2567. </div>
  2568. <div id="outline-container-sec-" class="outline-3">
  2569. <h3 id="sec-"><code>ds::alist::print</code></h3>
  2570. <div class="outline-text-3" id="text-">
  2571. <dl class="org-dl">
  2572. <dt> type </dt><dd><code>:lambda</code>
  2573. </dd>
  2574. <dt> arguments </dt><dd><dl class="org-dl">
  2575. <dt> postitional </dt><dd><code>alist</code>
  2576. </dd>
  2577. </dl>
  2578. </dd>
  2579. <dt> docu </dt><dd>none
  2580. </dd>
  2581. </dl>
  2582. <hr/>
  2583. </div>
  2584. </div>
  2585. <div id="outline-container-sec-" class="outline-3">
  2586. <h3 id="sec-"><code>ds::alist::get</code></h3>
  2587. <div class="outline-text-3" id="text-">
  2588. <dl class="org-dl">
  2589. <dt> type </dt><dd><code>:lambda</code>
  2590. </dd>
  2591. <dt> arguments </dt><dd><dl class="org-dl">
  2592. <dt> postitional </dt><dd><code>alist</code>, <code>key</code>
  2593. </dd>
  2594. </dl>
  2595. </dd>
  2596. <dt> docu </dt><dd>none
  2597. </dd>
  2598. </dl>
  2599. <hr/>
  2600. </div>
  2601. </div>
  2602. <div id="outline-container-sec-" class="outline-3">
  2603. <h3 id="sec-"><code>ds::alist::find</code></h3>
  2604. <div class="outline-text-3" id="text-">
  2605. <dl class="org-dl">
  2606. <dt> type </dt><dd><code>:lambda</code>
  2607. </dd>
  2608. <dt> arguments </dt><dd><dl class="org-dl">
  2609. <dt> postitional </dt><dd><code>alist</code>, <code>key</code>
  2610. </dd>
  2611. </dl>
  2612. </dd>
  2613. <dt> docu </dt><dd>none
  2614. </dd>
  2615. </dl>
  2616. <hr/>
  2617. </div>
  2618. </div>
  2619. <div id="outline-container-sec-" class="outline-3">
  2620. <h3 id="sec-"><code>ds::alist::key-exists?</code></h3>
  2621. <div class="outline-text-3" id="text-">
  2622. <dl class="org-dl">
  2623. <dt> type </dt><dd><code>:lambda</code>
  2624. </dd>
  2625. <dt> arguments </dt><dd><dl class="org-dl">
  2626. <dt> postitional </dt><dd><code>alist</code>, <code>key</code>
  2627. </dd>
  2628. </dl>
  2629. </dd>
  2630. <dt> docu </dt><dd>none
  2631. </dd>
  2632. </dl>
  2633. <hr/>
  2634. </div>
  2635. </div>
  2636. <div id="outline-container-sec-" class="outline-3">
  2637. <h3 id="sec-"><code>ds::alist::remove!</code></h3>
  2638. <div class="outline-text-3" id="text-">
  2639. <dl class="org-dl">
  2640. <dt> type </dt><dd><code>:lambda</code>
  2641. </dd>
  2642. <dt> arguments </dt><dd><dl class="org-dl">
  2643. <dt> postitional </dt><dd><code>alist</code>, <code>key</code>
  2644. </dd>
  2645. </dl>
  2646. </dd>
  2647. <dt> docu </dt><dd>none
  2648. </dd>
  2649. </dl>
  2650. <hr/>
  2651. </div>
  2652. </div>
  2653. <div id="outline-container-sec-" class="outline-3">
  2654. <h3 id="sec-"><code>ds::alist::set!</code></h3>
  2655. <div class="outline-text-3" id="text-">
  2656. <dl class="org-dl">
  2657. <dt> type </dt><dd><code>:lambda</code>
  2658. </dd>
  2659. <dt> arguments </dt><dd><dl class="org-dl">
  2660. <dt> postitional </dt><dd><code>alist</code>, <code>key</code>, <code>value</code>
  2661. </dd>
  2662. </dl>
  2663. </dd>
  2664. <dt> docu </dt><dd>none
  2665. </dd>
  2666. </dl>
  2667. <hr/>
  2668. </div>
  2669. </div>
  2670. <div id="outline-container-sec-" class="outline-3">
  2671. <h3 id="sec-"><code>ds::alist::set-overwrite!</code></h3>
  2672. <div class="outline-text-3" id="text-">
  2673. <dl class="org-dl">
  2674. <dt> type </dt><dd><code>:lambda</code>
  2675. </dd>
  2676. <dt> arguments </dt><dd><dl class="org-dl">
  2677. <dt> postitional </dt><dd><code>alist</code>, <code>key</code>, <code>value</code>
  2678. </dd>
  2679. </dl>
  2680. </dd>
  2681. <dt> docu </dt><dd>none
  2682. </dd>
  2683. </dl>
  2684. <hr/>
  2685. </div>
  2686. </div>
  2687. <div id="outline-container-sec-" class="outline-3">
  2688. <h3 id="sec-"><code>ds::plist::make</code></h3>
  2689. <div class="outline-text-3" id="text-">
  2690. <dl class="org-dl">
  2691. <dt> type </dt><dd><code>:lambda</code>
  2692. </dd>
  2693. <dt> arguments </dt><dd>none.
  2694. </dd>
  2695. <dt> docu </dt><dd>none
  2696. </dd>
  2697. </dl>
  2698. <hr/>
  2699. </div>
  2700. </div>
  2701. <div id="outline-container-sec-" class="outline-3">
  2702. <h3 id="sec-"><code>ds::plist::print</code></h3>
  2703. <div class="outline-text-3" id="text-">
  2704. <dl class="org-dl">
  2705. <dt> type </dt><dd><code>:lambda</code>
  2706. </dd>
  2707. <dt> arguments </dt><dd><dl class="org-dl">
  2708. <dt> postitional </dt><dd><code>plist</code>
  2709. </dd>
  2710. </dl>
  2711. </dd>
  2712. <dt> docu </dt><dd>none
  2713. </dd>
  2714. </dl>
  2715. <hr/>
  2716. </div>
  2717. </div>
  2718. <div id="outline-container-sec-" class="outline-3">
  2719. <h3 id="sec-"><code>ds::plist::get</code></h3>
  2720. <div class="outline-text-3" id="text-">
  2721. <dl class="org-dl">
  2722. <dt> type </dt><dd><code>:lambda</code>
  2723. </dd>
  2724. <dt> arguments </dt><dd><dl class="org-dl">
  2725. <dt> postitional </dt><dd><code>plist</code>, <code>prop</code>
  2726. </dd>
  2727. </dl>
  2728. </dd>
  2729. <dt> docu </dt><dd>none
  2730. </dd>
  2731. </dl>
  2732. <hr/>
  2733. </div>
  2734. </div>
  2735. <div id="outline-container-sec-" class="outline-3">
  2736. <h3 id="sec-"><code>ds::plist::find</code></h3>
  2737. <div class="outline-text-3" id="text-">
  2738. <dl class="org-dl">
  2739. <dt> type </dt><dd><code>:lambda</code>
  2740. </dd>
  2741. <dt> arguments </dt><dd><dl class="org-dl">
  2742. <dt> postitional </dt><dd><code>plist</code>, <code>prop</code>
  2743. </dd>
  2744. </dl>
  2745. </dd>
  2746. <dt> docu </dt><dd>none
  2747. </dd>
  2748. </dl>
  2749. <hr/>
  2750. </div>
  2751. </div>
  2752. <div id="outline-container-sec-" class="outline-3">
  2753. <h3 id="sec-"><code>ds::plist::prop-exists?</code></h3>
  2754. <div class="outline-text-3" id="text-">
  2755. <dl class="org-dl">
  2756. <dt> type </dt><dd><code>:lambda</code>
  2757. </dd>
  2758. <dt> arguments </dt><dd><dl class="org-dl">
  2759. <dt> postitional </dt><dd><code>plist</code>, <code>prop</code>
  2760. </dd>
  2761. </dl>
  2762. </dd>
  2763. <dt> docu </dt><dd>none
  2764. </dd>
  2765. </dl>
  2766. <hr/>
  2767. </div>
  2768. </div>
  2769. <div id="outline-container-sec-" class="outline-3">
  2770. <h3 id="sec-"><code>ds::plist::remove!</code></h3>
  2771. <div class="outline-text-3" id="text-">
  2772. <dl class="org-dl">
  2773. <dt> type </dt><dd><code>:lambda</code>
  2774. </dd>
  2775. <dt> arguments </dt><dd><dl class="org-dl">
  2776. <dt> postitional </dt><dd><code>plist</code>, <code>prop</code>
  2777. </dd>
  2778. </dl>
  2779. </dd>
  2780. <dt> docu </dt><dd>none
  2781. </dd>
  2782. </dl>
  2783. <hr/>
  2784. </div>
  2785. </div>
  2786. <div id="outline-container-sec-" class="outline-3">
  2787. <h3 id="sec-"><code>ds::plist::set!</code></h3>
  2788. <div class="outline-text-3" id="text-">
  2789. <dl class="org-dl">
  2790. <dt> type </dt><dd><code>:lambda</code>
  2791. </dd>
  2792. <dt> arguments </dt><dd><dl class="org-dl">
  2793. <dt> postitional </dt><dd><code>plist</code>, <code>prop</code>, <code>value</code>
  2794. </dd>
  2795. </dl>
  2796. </dd>
  2797. <dt> docu </dt><dd>none
  2798. </dd>
  2799. </dl>
  2800. <hr/>
  2801. </div>
  2802. </div>
  2803. <div id="outline-container-sec-" class="outline-3">
  2804. <h3 id="sec-"><code>ds::plist::set-overwrite!</code></h3>
  2805. <div class="outline-text-3" id="text-">
  2806. <dl class="org-dl">
  2807. <dt> type </dt><dd><code>:lambda</code>
  2808. </dd>
  2809. <dt> arguments </dt><dd><dl class="org-dl">
  2810. <dt> postitional </dt><dd><code>plist</code>, <code>prop</code>, <code>value</code>
  2811. </dd>
  2812. </dl>
  2813. </dd>
  2814. <dt> docu </dt><dd>none
  2815. </dd>
  2816. </dl>
  2817. <hr/>
  2818. </div>
  2819. </div>
  2820. <div id="outline-container-sec-" class="outline-3">
  2821. <h3 id="sec-"><code>automata::make-dfa</code></h3>
  2822. <div class="outline-text-3" id="text-">
  2823. <dl class="org-dl">
  2824. <dt> type </dt><dd><code>:lambda</code>
  2825. </dd>
  2826. <dt> arguments </dt><dd><dl class="org-dl">
  2827. <dt> postitional </dt><dd><code>Q</code>, <code>S</code>, <code>delta</code>, <code>q0</code>, <code>F</code>
  2828. </dd>
  2829. </dl>
  2830. </dd>
  2831. <dt> docu </dt><dd>none
  2832. </dd>
  2833. </dl>
  2834. <hr/>
  2835. </div>
  2836. </div>
  2837. <div id="outline-container-sec-" class="outline-3">
  2838. <h3 id="sec-"><code>interpolation::lerp</code></h3>
  2839. <div class="outline-text-3" id="text-">
  2840. <dl class="org-dl">
  2841. <dt> type </dt><dd><code>:lambda</code>
  2842. </dd>
  2843. <dt> arguments </dt><dd><dl class="org-dl">
  2844. <dt> postitional </dt><dd><code>a</code>, <code>b</code>, <code>t</code>
  2845. </dd>
  2846. </dl>
  2847. </dd>
  2848. <dt> docu </dt><dd>none
  2849. </dd>
  2850. </dl>
  2851. <hr/>
  2852. </div>
  2853. </div>
  2854. <div id="outline-container-sec-" class="outline-3">
  2855. <h3 id="sec-"><code>interpolation::lerper</code></h3>
  2856. <div class="outline-text-3" id="text-">
  2857. <dl class="org-dl">
  2858. <dt> type </dt><dd><code>:lambda</code>
  2859. </dd>
  2860. <dt> arguments </dt><dd><dl class="org-dl">
  2861. <dt> postitional </dt><dd><code>a</code>, <code>b</code>
  2862. </dd>
  2863. </dl>
  2864. </dd>
  2865. <dt> docu </dt><dd>none
  2866. </dd>
  2867. </dl>
  2868. <hr/>
  2869. </div>
  2870. </div>
  2871. <div id="outline-container-sec-" class="outline-3">
  2872. <h3 id="sec-"><code>interpolation::stepped-lerper</code></h3>
  2873. <div class="outline-text-3" id="text-">
  2874. <dl class="org-dl">
  2875. <dt> type </dt><dd><code>:lambda</code>
  2876. </dd>
  2877. <dt> arguments </dt><dd><dl class="org-dl">
  2878. <dt> postitional </dt><dd><code>a</code>, <code>b</code>, <code>#steps</code>
  2879. </dd>
  2880. </dl>
  2881. </dd>
  2882. <dt> docu </dt><dd>none
  2883. </dd>
  2884. </dl>
  2885. <hr/>
  2886. </div>
  2887. </div>
  2888. <div id="outline-container-sec-" class="outline-3">
  2889. <h3 id="sec-"><code>interpolation::point-lerp</code></h3>
  2890. <div class="outline-text-3" id="text-">
  2891. <dl class="org-dl">
  2892. <dt> type </dt><dd><code>:lambda</code>
  2893. </dd>
  2894. <dt> arguments </dt><dd><dl class="org-dl">
  2895. <dt> postitional </dt><dd><code>p1</code>, <code>p2</code>, <code>t</code>
  2896. </dd>
  2897. </dl>
  2898. </dd>
  2899. <dt> docu </dt><dd>none
  2900. </dd>
  2901. </dl>
  2902. <hr/>
  2903. </div>
  2904. </div>
  2905. <div id="outline-container-sec-" class="outline-3">
  2906. <h3 id="sec-"><code>interpolation::point-lerper</code></h3>
  2907. <div class="outline-text-3" id="text-">
  2908. <dl class="org-dl">
  2909. <dt> type </dt><dd><code>:lambda</code>
  2910. </dd>
  2911. <dt> arguments </dt><dd><dl class="org-dl">
  2912. <dt> postitional </dt><dd><code>p1</code>, <code>p2</code>
  2913. </dd>
  2914. </dl>
  2915. </dd>
  2916. <dt> docu </dt><dd>none
  2917. </dd>
  2918. </dl>
  2919. <hr/>
  2920. </div>
  2921. </div>
  2922. <div id="outline-container-sec-" class="outline-3">
  2923. <h3 id="sec-"><code>interpolation::bezier2</code></h3>
  2924. <div class="outline-text-3" id="text-">
  2925. <dl class="org-dl">
  2926. <dt> type </dt><dd><code>:lambda</code>
  2927. </dd>
  2928. <dt> arguments </dt><dd><dl class="org-dl">
  2929. <dt> postitional </dt><dd><code>p1</code>, <code>p2</code>, <code>p3</code>, <code>t</code>
  2930. </dd>
  2931. </dl>
  2932. </dd>
  2933. <dt> docu </dt><dd>none
  2934. </dd>
  2935. </dl>
  2936. <hr/>
  2937. </div>
  2938. </div>
  2939. <div id="outline-container-sec-" class="outline-3">
  2940. <h3 id="sec-"><code>interpolation::bezierer2</code></h3>
  2941. <div class="outline-text-3" id="text-">
  2942. <dl class="org-dl">
  2943. <dt> type </dt><dd><code>:lambda</code>
  2944. </dd>
  2945. <dt> arguments </dt><dd><dl class="org-dl">
  2946. <dt> postitional </dt><dd><code>p1</code>, <code>p2</code>, <code>p3</code>
  2947. </dd>
  2948. </dl>
  2949. </dd>
  2950. <dt> docu </dt><dd>none
  2951. </dd>
  2952. </dl>
  2953. <hr/>
  2954. </div>
  2955. </div>
  2956. <div id="outline-container-sec-" class="outline-3">
  2957. <h3 id="sec-"><code>define-class</code></h3>
  2958. <div class="outline-text-3" id="text-">
  2959. <dl class="org-dl">
  2960. <dt> type </dt><dd><code>:macro</code>
  2961. </dd>
  2962. <dt> arguments </dt><dd><dl class="org-dl">
  2963. <dt> postitional </dt><dd><code>name-and-members</code>
  2964. </dd>
  2965. <dt> rest </dt><dd><code>body</code>
  2966. </dd>
  2967. </dl>
  2968. </dd>
  2969. <dt> docu </dt><dd>none
  2970. </dd>
  2971. </dl>
  2972. <hr/>
  2973. </div>
  2974. </div>
  2975. <div id="outline-container-sec-" class="outline-3">
  2976. <h3 id="sec-"><code>-&gt;</code></h3>
  2977. <div class="outline-text-3" id="text-">
  2978. <dl class="org-dl">
  2979. <dt> type </dt><dd><code>:macro</code>
  2980. </dd>
  2981. <dt> arguments </dt><dd><dl class="org-dl">
  2982. <dt> postitional </dt><dd><code>obj</code>, <code>meth</code>
  2983. </dd>
  2984. <dt> rest </dt><dd><code>args</code>
  2985. </dd>
  2986. </dl>
  2987. </dd>
  2988. <dt> docu </dt><dd>none
  2989. </dd>
  2990. </dl>
  2991. <hr/>
  2992. </div>
  2993. </div>
  2994. <div id="outline-container-sec-" class="outline-3">
  2995. <h3 id="sec-"><code>math::pi</code></h3>
  2996. <div class="outline-text-3" id="text-">
  2997. <dl class="org-dl">
  2998. <dt> type </dt><dd><code>:number</code>
  2999. </dd>
  3000. <dt> value </dt><dd><code>3.141593</code>
  3001. </dd>
  3002. <dt> docu </dt><dd>none
  3003. </dd>
  3004. </dl>
  3005. <hr/>
  3006. </div>
  3007. </div>
  3008. <div id="outline-container-sec-" class="outline-3">
  3009. <h3 id="sec-"><code>math::abs</code></h3>
  3010. <div class="outline-text-3" id="text-">
  3011. <dl class="org-dl">
  3012. <dt> type </dt><dd><code>:lambda</code>
  3013. </dd>
  3014. <dt> arguments </dt><dd><dl class="org-dl">
  3015. <dt> postitional </dt><dd><code>x</code>
  3016. </dd>
  3017. </dl>
  3018. </dd>
  3019. <dt> docu </dt><dd><p>
  3020. Accepts one argument and returns the absoulte value of it
  3021. </p>
  3022. </dd>
  3023. </dl>
  3024. <hr/>
  3025. </div>
  3026. </div>
  3027. <div id="outline-container-sec-" class="outline-3">
  3028. <h3 id="sec-"><code>math::sqrt</code></h3>
  3029. <div class="outline-text-3" id="text-">
  3030. <dl class="org-dl">
  3031. <dt> type </dt><dd><code>:lambda</code>
  3032. </dd>
  3033. <dt> arguments </dt><dd><dl class="org-dl">
  3034. <dt> postitional </dt><dd><code>x</code>
  3035. </dd>
  3036. </dl>
  3037. </dd>
  3038. <dt> docu </dt><dd><p>
  3039. Accepts one argument and returns the square root of it
  3040. </p>
  3041. </dd>
  3042. </dl>
  3043. <hr/>
  3044. </div>
  3045. </div>
  3046. <div id="outline-container-sec-" class="outline-3">
  3047. <h3 id="sec-"><code>math::make-vector3</code></h3>
  3048. <div class="outline-text-3" id="text-">
  3049. <dl class="org-dl">
  3050. <dt> type </dt><dd><code>:lambda</code>
  3051. </dd>
  3052. <dt> arguments </dt><dd><dl class="org-dl">
  3053. <dt> postitional </dt><dd><code>x</code>, <code>y</code>, <code>z</code>
  3054. </dd>
  3055. </dl>
  3056. </dd>
  3057. <dt> docu </dt><dd>none
  3058. </dd>
  3059. </dl>
  3060. <hr/>
  3061. </div>
  3062. </div>
  3063. <div id="outline-container-sec-" class="outline-3">
  3064. <h3 id="sec-"><code>set::make</code></h3>
  3065. <div class="outline-text-3" id="text-">
  3066. <dl class="org-dl">
  3067. <dt> type </dt><dd><code>:lambda</code>
  3068. </dd>
  3069. <dt> arguments </dt><dd><dl class="org-dl">
  3070. <dt> rest </dt><dd><code>vals</code>
  3071. </dd>
  3072. </dl>
  3073. </dd>
  3074. <dt> docu </dt><dd>none
  3075. </dd>
  3076. </dl>
  3077. <hr/>
  3078. </div>
  3079. </div>
  3080. <div id="outline-container-sec-" class="outline-3">
  3081. <h3 id="sec-"><code>set::find</code></h3>
  3082. <div class="outline-text-3" id="text-">
  3083. <dl class="org-dl">
  3084. <dt> type </dt><dd><code>:lambda</code>
  3085. </dd>
  3086. <dt> arguments </dt><dd><dl class="org-dl">
  3087. <dt> postitional </dt><dd><code>set</code>, <code>val</code>
  3088. </dd>
  3089. </dl>
  3090. </dd>
  3091. <dt> docu </dt><dd>none
  3092. </dd>
  3093. </dl>
  3094. <hr/>
  3095. </div>
  3096. </div>
  3097. <div id="outline-container-sec-" class="outline-3">
  3098. <h3 id="sec-"><code>set::contains?</code></h3>
  3099. <div class="outline-text-3" id="text-">
  3100. <dl class="org-dl">
  3101. <dt> type </dt><dd><code>:lambda</code>
  3102. </dd>
  3103. <dt> arguments </dt><dd><dl class="org-dl">
  3104. <dt> postitional </dt><dd><code>set</code>, <code>val</code>
  3105. </dd>
  3106. </dl>
  3107. </dd>
  3108. <dt> docu </dt><dd>none
  3109. </dd>
  3110. </dl>
  3111. <hr/>
  3112. </div>
  3113. </div>
  3114. <div id="outline-container-sec-" class="outline-3">
  3115. <h3 id="sec-"><code>set::insert!</code></h3>
  3116. <div class="outline-text-3" id="text-">
  3117. <dl class="org-dl">
  3118. <dt> type </dt><dd><code>:lambda</code>
  3119. </dd>
  3120. <dt> arguments </dt><dd><dl class="org-dl">
  3121. <dt> postitional </dt><dd><code>set</code>, <code>value</code>
  3122. </dd>
  3123. </dl>
  3124. </dd>
  3125. <dt> docu </dt><dd>none
  3126. </dd>
  3127. </dl>
  3128. </div>
  3129. </div>
  3130. </div>
  3131. </div></div></div>
  3132. <footer id="postamble" class="">
  3133. <div><p class="author">Author: Felix Brendel</p>
  3134. <p class="date">Created: 2019-11-10 So 23:51</p>
  3135. <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>
  3136. </div>
  3137. </footer>
  3138. </body>
  3139. </html>