<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<title>~/play/mu/shell/data.limg.html</title>
<meta name="Generator" content="Vim/8.1">
<meta name="plugin-version" content="vim8.1_v1">
<meta name="syntax" content="none">
<meta name="settings" content="use_css,pre_wrap,no_foldcolumn,expand_tabs,prevent_copy=">
<meta name="colorscheme" content="minimal-dark">
<style type="text/css">
<!--
pre { white-space: pre-wrap; font-family: monospace; color: #8a8a8a; background-color: #a8a8a8; }
body { font-family: monospace; color: #8a8a8a; background-color: #a8a8a8; }
* { font-size: 1em; }
.muLispOuterKeyword { color: #d70000; }
.muLispNormal { color: #000000; }
.Constant { color: #008787; }
.Delimiter { color: #c000c0; }
.Comment { color: #005faf; }
.Normal { color: #8a8a8a; background-color: #a8a8a8; padding-bottom: 1px; }
.muLispKeyword { color: #008700; }
-->
</style>
</head>
<body>
<pre id='vimCodeElement'>
(
(<span class="muLispOuterKeyword">globals</span> . (
(<span class="muLispKeyword">mac</span> . <span class="Normal">[</span><span class="Delimiter">(</span><span class="muLispNormal">define </span><span class="muLispKeyword">mac</span><span class="muLispNormal"> </span><span class="Delimiter">(</span><span class="muLispNormal">litmac litfn </span><span class="Delimiter">()</span><span class="muLispNormal"> </span><span class="Delimiter">((</span><span class="muLispNormal">name . params</span><span class="Delimiter">)</span><span class="muLispNormal"> . body</span><span class="Delimiter">)</span>
<span class="muLispNormal"> </span><span class="Delimiter">`(</span><span class="muLispNormal">define </span><span class="Delimiter">,</span><span class="muLispNormal">name </span><span class="Delimiter">(</span><span class="muLispNormal">litmac litfn </span><span class="Delimiter">()</span><span class="muLispNormal"> </span><span class="Delimiter">,</span><span class="muLispNormal">params </span><span class="Delimiter">,@</span><span class="muLispNormal">body</span><span class="Delimiter">))))</span><span class="Normal">]</span>)
(<span class="muLispKeyword">def</span> . <span class="Normal">[</span><span class="Delimiter">(</span><span class="muLispKeyword">mac</span><span class="muLispNormal"> </span><span class="Delimiter">(</span><span class="muLispKeyword">def</span><span class="muLispNormal"> </span><span class="Delimiter">(</span><span class="muLispNormal">name . params</span><span class="Delimiter">)</span><span class="muLispNormal"> . body</span><span class="Delimiter">)</span>
<span class="muLispNormal"> </span><span class="Delimiter">`(</span><span class="muLispNormal">define </span><span class="Delimiter">,</span><span class="muLispNormal">name </span><span class="Delimiter">(</span><span class="muLispKeyword">fn</span><span class="muLispNormal"> </span><span class="Delimiter">,</span><span class="muLispNormal">params </span><span class="Delimiter">,@</span><span class="muLispNormal">body</span><span class="Delimiter">)))</span><span class="Normal">]</span>)
(do . <span class="Normal">[</span><span class="Delimiter">(</span><span class="muLispKeyword">mac</span><span class="muLispNormal"> </span><span class="Delimiter">(</span><span class="muLispNormal">do . body</span><span class="Delimiter">)</span><span class="muLispNormal"> </span><span class="Delimiter">`((</span><span class="muLispKeyword">fn</span><span class="muLispNormal"> </span><span class="Delimiter">()</span><span class="muLispNormal"> </span><span class="Delimiter">,@</span><span class="muLispNormal">body</span><span class="Delimiter">)))</span><span class="Normal">]</span>)
(<span class="muLispKeyword">let</span> . <span class="Normal">[</span><span class="Delimiter">(</span><span class="muLispKeyword">mac</span><span class="muLispNormal"> </span><span class="Delimiter">(</span><span class="muLispKeyword">let</span><span class="muLispNormal"> var val . body</span><span class="Delimiter">)</span>
<span class="muLispNormal"> </span><span class="Delimiter">`((</span><span class="muLispKeyword">fn</span><span class="muLispNormal"> </span><span class="Delimiter">(,</span><span class="muLispNormal">var</span><span class="Delimiter">)</span><span class="muLispNormal"> </span><span class="Delimiter">,@</span><span class="muLispNormal">body</span><span class="Delimiter">)</span><span class="muLispNormal"> </span><span class="Delimiter">,</span><span class="muLispNormal">val</span><span class="Delimiter">))</span><span class="Normal">]</span>)
(when . <span class="Normal">[</span><span class="Delimiter">(</span><span class="muLispKeyword">mac</span><span class="muLispNormal"> </span><span class="Delimiter">(</span><span class="muLispNormal">when cond . body</span><span class="Delimiter">)</span>
<span class="muLispNormal"> </span><span class="Delimiter">`(</span><span class="muLispKeyword">if</span><span class="muLispNormal"> </span><span class="Delimiter">,</span><span class="muLispNormal">cond </span><span class="Delimiter">(</span><span class="muLispNormal">do </span><span class="Delimiter">,@</span><span class="muLispNormal">body</span><span class="Delimiter">)</span><span class="muLispNormal"> </span><span class="Delimiter">()))</span><span class="Normal">]</span>)
(iflet . <span class="Normal">[</span><span class="Delimiter">(</span><span class="muLispKeyword">mac</span><span class="muLispNormal"> </span><span class="Delimiter">(</span><span class="muLispNormal">iflet var expr then else</span><span class="Delimiter">)</span>
<span class="muLispNormal"> </span><span class="Delimiter">`(</span><span class="muLispKeyword">let</span><span class="muLispNormal"> </span><span class="Delimiter">,</span><span class="muLispNormal">var </span><span class="Delimiter">,</span><span class="muLispNormal">expr</span>
<span class="muLispNormal"> </span><span class="Delimiter">(</span><span class="muLispKeyword">if</span><span class="muLispNormal"> </span><span class="Delimiter">,</span><span class="muLispNormal">var </span><span class="Delimiter">,</span><span class="muLispNormal">then </span><span class="Delimiter">,</span><span class="muLispNormal">else</span><span class="Delimiter">)))</span><span class="Normal">]</span>)
(aif . <span class="Normal">[</span><span class="Delimiter">(</span><span class="muLispKeyword">mac</span><span class="muLispNormal"> </span><span class="Delimiter">(</span><span class="muLispNormal">aif expr then else</span><span class="Delimiter">)</span>
<span class="muLispNormal"> </span><span class="Delimiter">`(</span><span class="muLispNormal">iflet it </span><span class="Delimiter">,</span><span class="muLispNormal">expr </span><span class="Delimiter">,</span><span class="muLispNormal">then </span><span class="Delimiter">,</span><span class="muLispNormal">else</span><span class="Delimiter">))</span><span class="Normal">]</span>)
(list . <span class="Normal">[</span><span class="Delimiter">(</span><span class="muLispKeyword">def</span><span class="muLispNormal"> </span><span class="Delimiter">(</span><span class="muLispNormal">list . args</span><span class="Delimiter">)</span>
<span class="muLispNormal"> </span><span class="Comment"># we should probably make a copy here</span>
<span class="muLispNormal"> args</span><span class="Delimiter">)</span><span class="Normal">]</span>)
(len . <span class="Normal">[</span><span class="Delimiter">(</span><span class="muLispKeyword">def</span><span class="muLispNormal"> </span><span class="Delimiter">(</span><span class="muLispNormal">len l</span><span class="Delimiter">)</span>
<span class="muLispNormal"> </span><span class="Delimiter">(</span><span class="muLispKeyword">if</span><span class="muLispNormal"> </span><span class="Delimiter">(</span><span class="muLispNormal">no l</span><span class="Delimiter">)</span>
<span class="muLispNormal"> </span><span class="Constant">0</span>
<span class="muLispNormal"> </span><span class="Delimiter">(</span><span class="muLispNormal">+ </span><span class="Constant">1</span><span class="muLispNormal"> </span><span class="Delimiter">(</span><span class="muLispNormal">len </span><span class="Delimiter">(</span><span class="muLispNormal">cdr l</span><span class="Delimiter">)))))</span><span class="Normal">]</span>)
(map1 . <span class="Normal">[</span><span class="Delimiter">(</span><span class="muLispKeyword">def</span><span class="muLispNormal"> </span><span class="Delimiter">(</span><span class="muLispNormal">map1 f xs</span><span class="Delimiter">)</span>
<span class="muLispNormal"> </span><span class="Delimiter">(</span><span class="muLispKeyword">if</span><span class="muLispNormal"> </span><span class="Delimiter">(</span><span class="muLispNormal">no xs</span><span class="Delimiter">)</span>
<span class="muLispNormal"> </span><span class="Delimiter">()</span>
<span class="muLispNormal"> </span><span class="Delimiter">(</span><span class="muLispNormal">cons </span><span class="Delimiter">(</span><span class="muLispNormal">f </span><span class="Delimiter">(</span><span class="muLispNormal">car xs</span><span class="Delimiter">))</span>
<span class="muLispNormal"> </span><span class="Delimiter">(</span><span class="muLispNormal">map1 f </span><span class="Delimiter">(</span><span class="muLispNormal">cdr xs</span><span class="Delimiter">)))))</span><span class="Normal">]</span>)
(compose . <span class="Normal">[</span><span class="Delimiter">(</span><span class="muLispKeyword">def</span><span class="muLispNormal"> </span><span class="Delimiter">(</span><span class="muLispNormal">compose f g</span><span class="Delimiter">)</span>
<span class="muLispNormal"> </span><span class="Delimiter">(</span><span class="muLispKeyword">fn</span><span class="muLispNormal"> args</span>
<span class="muLispNormal"> </span><span class="Delimiter">(</span><span class="muLispNormal">f </span><span class="Delimiter">(</span><span class="muLispNormal">g args</span><span class="Delimiter">))))</span><span class="Normal">]</span>)
(some . <span class="Normal">[</span><span class="Delimiter">(</span><span class="muLispKeyword">def</span><span class="muLispNormal"> </span><span class="Delimiter">(</span><span class="muLispNormal">some f xs</span><span class="Delimiter">)</span>
<span class="muLispNormal"> </span><span class="Delimiter">(</span><span class="muLispKeyword">if</span><span class="muLispNormal"> </span><span class="Delimiter">(</span><span class="muLispNormal">no xs</span><span class="Delimiter">)</span>
<span class="muLispNormal"> </span><span class="Delimiter">()</span>
<span class="muLispNormal"> </span><span class="Delimiter">(</span><span class="muLispKeyword">if</span><span class="muLispNormal"> </span><span class="Delimiter">(</span><span class="muLispNormal">f </span><span class="Delimiter">(</span><span class="muLispNormal">car xs</span><span class="Delimiter">))</span>
<span class="muLispNormal"> xs</span>
<span class="muLispNormal"> </span><span class="Delimiter">(</span><span class="muLispNormal">some f </span><span class="Delimiter">(</span><span class="muLispNormal">cdr xs</span><span class="Delimiter">)))))</span><span class="Normal">]</span>)
(any . some)
(all . <span class="Normal">[</span><span class="Delimiter">(</span><span class="muLispKeyword">def</span><span class="muLispNormal"> </span><span class="Delimiter">(</span><span class="muLispNormal">all f xs</span><span class="Delimiter">)</span>
<span class="muLispNormal"> </span><span class="Delimiter">(</span><span class="muLispKeyword">if</span><span class="muLispNormal"> </span><span class="Delimiter">(</span><span class="muLispNormal">no xs</span><span class="Delimiter">)</span>
<span class="muLispNormal"> </span><span class="Constant">1</span>
<span class="muLispNormal"> </span><span class="Delimiter">(</span><span class="muLispKeyword">if</span><span class="muLispNormal"> </span><span class="Delimiter">(</span><span class="muLispNormal">f </span><span class="Delimiter">(</span><span class="muLispNormal">car xs</span><span class="Delimiter">))</span>
<span class="muLispNormal"> </span><span class="Delimiter">(</span><span class="muLispNormal">all f </span><span class="Delimiter">(</span><span class="muLispNormal">cdr xs</span><span class="Delimiter">))</span>
<span class="muLispNormal"> </span><span class="Delimiter">())))</span><span class="Normal">]</span>)
(find . <span class="Normal">[</span><span class="Delimiter">(</span><span class="muLispKeyword">def</span><span class="muLispNormal"> </span><span class="Delimiter">(</span><span class="muLispNormal">find x xs</span><span class="Delimiter">)</span>
<span class="muLispNormal"> </span><span class="Delimiter">(</span><span class="muLispKeyword">if</span><span class="muLispNormal"> </span><span class="Delimiter">(</span><span class="muLispNormal">no xs</span><span class="Delimiter">)</span>
<span class="muLispNormal"> </span><span class="Delimiter">()</span>
<span class="muLispNormal"> </span><span class="Delimiter">(</span><span class="muLispKeyword">if</span><span class="muLispNormal"> </span><span class="Delimiter">(</span><span class="muLispNormal">= x </span><span class="Delimiter">(</span><span class="muLispNormal">car xs</span><span class="Delimiter">))</span>
<span class="muLispNormal"> </span><span class="Constant">1</span>
<span class="muLispNormal"> </span><span class="Delimiter">(</span><span class="muLispNormal">find x </span><span class="Delimiter">(</span><span class="muLispNormal">cdr xs</span><span class="Delimiter">)))))</span><span class="Normal">]</span>)
(afn . <span class="Normal">[</span><span class="Delimiter">(</span><span class="muLispKeyword">mac</span><span class="muLispNormal"> </span><span class="Delimiter">(</span><span class="muLispNormal">afn params . body</span><span class="Delimiter">)</span>
<span class="muLispNormal"> </span><span class="Delimiter">`(</span><span class="muLispKeyword">let</span><span class="muLispNormal"> self </span><span class="Delimiter">()</span>
<span class="muLispNormal"> </span><span class="Delimiter">(</span><span class="muLispNormal">set self </span><span class="Delimiter">(</span><span class="muLispKeyword">fn</span><span class="muLispNormal"> </span><span class="Delimiter">,</span><span class="muLispNormal">params </span><span class="Delimiter">,@</span><span class="muLispNormal">body</span><span class="Delimiter">))))</span><span class="Normal">]</span>)
(seq . <span class="Normal">[</span><span class="Delimiter">(</span><span class="muLispKeyword">def</span><span class="muLispNormal"> </span><span class="Delimiter">(</span><span class="muLispNormal">seq n</span><span class="Delimiter">)</span>
<span class="muLispNormal"> </span><span class="Delimiter">((</span><span class="muLispNormal">afn </span><span class="Delimiter">(</span><span class="muLispNormal">i</span><span class="Delimiter">)</span>
<span class="muLispNormal"> </span><span class="Delimiter">(</span><span class="muLispKeyword">if</span><span class="muLispNormal"> </span><span class="Delimiter">(</span><span class="muLispNormal">> i n</span><span class="Delimiter">)</span>
<span class="muLispNormal"> </span><span class="Delimiter">()</span>
<span class="muLispNormal"> </span><span class="Delimiter">(</span><span class="muLispNormal">cons i </span><span class="Delimiter">(</span><span class="muLispNormal">self </span><span class="Delimiter">(</span><span class="muLispNormal">+ i </span><span class="Constant">1</span><span class="Delimiter">)))))</span>
<span class="muLispNormal"> </span><span class="Constant">1</span><span class="Delimiter">))</span><span class="Normal">]</span>)
(each . <span class="Normal">[</span><span class="Delimiter">(</span><span class="muLispKeyword">mac</span><span class="muLispNormal"> </span><span class="Delimiter">(</span><span class="muLispNormal">each x xs . body</span><span class="Delimiter">)</span>
<span class="muLispNormal"> </span><span class="Delimiter">`(</span><span class="muLispNormal">walk </span><span class="Delimiter">,</span><span class="muLispNormal">xs </span><span class="Delimiter">(</span><span class="muLispKeyword">fn</span><span class="muLispNormal"> </span><span class="Delimiter">(,</span><span class="muLispNormal">x</span><span class="Delimiter">)</span><span class="muLispNormal"> </span><span class="Delimiter">,@</span><span class="muLispNormal">body</span><span class="Delimiter">)))</span><span class="Normal">]</span>)
(walk . <span class="Normal">[</span><span class="Delimiter">(</span><span class="muLispKeyword">def</span><span class="muLispNormal"> </span><span class="Delimiter">(</span><span class="muLispNormal">walk xs f</span><span class="Delimiter">)</span>
<span class="muLispNormal"> </span><span class="Delimiter">(</span><span class="muLispNormal">when xs</span>
<span class="muLispNormal"> </span><span class="Delimiter">(</span><span class="muLispNormal">f </span><span class="Delimiter">(</span><span class="muLispNormal">car xs</span><span class="Delimiter">))</span>
<span class="muLispNormal"> </span><span class="Delimiter">(</span><span class="muLispNormal">walk </span><span class="Delimiter">(</span><span class="muLispNormal">cdr xs</span><span class="Delimiter">)</span><span class="muLispNormal"> f</span><span class="Delimiter">)))</span><span class="muLispNormal"> </span><span class="Normal">]</span>)
(up . <span class="Normal">[</span><span class="Delimiter">(</span><span class="muLispKeyword">mac</span><span class="muLispNormal"> </span><span class="Delimiter">(</span><span class="muLispNormal">up var init max . body</span><span class="Delimiter">)</span>
<span class="muLispNormal"> </span><span class="Delimiter">`(</span><span class="muLispKeyword">for</span><span class="muLispNormal"> </span><span class="Delimiter">,</span><span class="muLispNormal">var </span><span class="Delimiter">,</span><span class="muLispNormal">init </span><span class="Delimiter">(</span><span class="muLispNormal"><= </span><span class="Delimiter">,</span><span class="muLispNormal">var </span><span class="Delimiter">,</span><span class="muLispNormal">max</span><span class="Delimiter">)</span><span class="muLispNormal"> </span><span class="Delimiter">(</span><span class="muLispNormal">++ </span><span class="Delimiter">,</span><span class="muLispNormal">var</span><span class="Delimiter">)</span>
<span class="muLispNormal"> </span><span class="Delimiter">,@</span><span class="muLispNormal">body</span><span class="Delimiter">))</span><span class="Normal">]</span>)
(down . <span class="Normal">[</span><span class="Delimiter">(</span><span class="muLispKeyword">mac</span><span class="muLispNormal"> </span><span class="Delimiter">(</span><span class="muLispNormal">down var init min . body</span><span class="Delimiter">)</span>
<span class="muLispNormal"> </span><span class="Delimiter">`(</span><span class="muLispKeyword">for</span><span class="muLispNormal"> </span><span class="Delimiter">,</span><span class="muLispNormal">var </span><span class="Delimiter">,</span><span class="muLispNormal">init </span><span class="Delimiter">(</span><span class="muLispNormal">>= </span><span class="Delimiter">,</span><span class="muLispNormal">var </span><span class="Delimiter">,</span><span class="muLispNormal">min</span><span class="Delimiter">)</span><span class="muLispNormal"> </span><span class="Delimiter">(</span><span class="muLispNormal">-- </span><span class="Delimiter">,</span><span class="muLispNormal">var</span><span class="Delimiter">)</span>
<span class="muLispNormal"> </span><span class="Delimiter">,@</span><span class="muLispNormal">body</span><span class="Delimiter">))</span><span class="Normal">]</span>)
(rem . <span class="Normal">[</span><span class="Delimiter">(</span><span class="muLispKeyword">def</span><span class="muLispNormal"> </span><span class="Delimiter">(</span><span class="muLispNormal">rem f xs</span><span class="Delimiter">)</span>
<span class="muLispNormal"> </span><span class="Delimiter">(</span><span class="muLispKeyword">if</span><span class="muLispNormal"> </span><span class="Delimiter">(</span><span class="muLispNormal">no xs</span><span class="Delimiter">)</span>
<span class="muLispNormal"> </span><span class="Delimiter">()</span>
<span class="muLispNormal"> </span><span class="Delimiter">(</span><span class="muLispKeyword">let</span><span class="muLispNormal"> rest </span><span class="Delimiter">(</span><span class="muLispNormal">rem f </span><span class="Delimiter">(</span><span class="muLispNormal">cdr xs</span><span class="Delimiter">))</span>
<span class="muLispNormal"> </span><span class="Delimiter">(</span><span class="muLispKeyword">if</span><span class="muLispNormal"> </span><span class="Delimiter">(</span><span class="muLispNormal">f </span><span class="Delimiter">(</span><span class="muLispNormal">car xs</span><span class="Delimiter">))</span>
<span class="muLispNormal"> rest</span>
<span class="muLispNormal"> </span><span class="Delimiter">(</span><span class="muLispNormal">cons </span><span class="Delimiter">(</span><span class="muLispNormal">car xs</span><span class="Delimiter">)</span><span class="muLispNormal"> rest</span><span class="Delimiter">)))))</span><span class="Normal">]</span>)
(keep . <span class="Normal">[</span><span class="Delimiter">(</span><span class="muLispKeyword">def</span><span class="muLispNormal"> </span><span class="Delimiter">(</span><span class="muLispNormal">keep f xs</span><span class="Delimiter">)</span>
<span class="muLispNormal"> </span><span class="Delimiter">(</span><span class="muLispKeyword">if</span><span class="muLispNormal"> </span><span class="Delimiter">(</span><span class="muLispNormal">no xs</span><span class="Delimiter">)</span>
<span class="muLispNormal"> </span><span class="Delimiter">()</span>
<span class="muLispNormal"> </span><span class="Delimiter">(</span><span class="muLispKeyword">let</span><span class="muLispNormal"> rest </span><span class="Delimiter">(</span><span class="muLispNormal">keep f </span><span class="Delimiter">(</span><span class="muLispNormal">cdr xs</span><span class="Delimiter">))</span>
<span class="muLispNormal"> </span><span class="Delimiter">(</span><span class="muLispKeyword">if</span><span class="muLispNormal"> </span><span class="Delimiter">(</span><span class="muLispNormal">f </span><span class="Delimiter">(</span><span class="muLispNormal">car xs</span><span class="Delimiter">))</span>
<span class="muLispNormal"> </span><span class="Delimiter">(</span><span class="muLispNormal">cons </span><span class="Delimiter">(</span><span class="muLispNormal">car xs</span><span class="Delimiter">)</span><span class="muLispNormal"> rest</span><span class="Delimiter">)</span>
<span class="muLispNormal"> rest</span><span class="Delimiter">))))</span><span class="Normal">]</span>)
(++ . <span class="Normal">[</span><span class="Delimiter">(</span><span class="muLispKeyword">mac</span><span class="muLispNormal"> </span><span class="Delimiter">(</span><span class="muLispNormal">++ var</span><span class="Delimiter">)</span><span class="muLispNormal"> </span><span class="Delimiter">`(</span><span class="muLispNormal">set </span><span class="Delimiter">,</span><span class="muLispNormal">var </span><span class="Delimiter">(</span><span class="muLispNormal">+ </span><span class="Delimiter">,</span><span class="muLispNormal">var </span><span class="Constant">1</span><span class="Delimiter">)))</span><span class="Normal">]</span>)
(+= . <span class="Normal">[</span><span class="Delimiter">(</span><span class="muLispKeyword">mac</span><span class="muLispNormal"> </span><span class="Delimiter">(</span><span class="muLispNormal">+= var inc</span><span class="Delimiter">)</span>
<span class="muLispNormal"> </span><span class="Delimiter">`(</span><span class="muLispNormal">set </span><span class="Delimiter">,</span><span class="muLispNormal">var </span><span class="Delimiter">(</span><span class="muLispNormal">+ </span><span class="Delimiter">,</span><span class="muLispNormal">var </span><span class="Delimiter">,</span><span class="muLispNormal">inc</span><span class="Delimiter">)))</span><span class="Normal">]</span>)
(<span class="muLispKeyword">for</span> . <span class="Normal">[</span><span class="Delimiter">(</span><span class="muLispKeyword">mac</span><span class="muLispNormal"> </span><span class="Delimiter">(</span><span class="muLispKeyword">for</span><span class="muLispNormal"> var init test update . body</span><span class="Delimiter">)</span>
<span class="muLispNormal"> </span><span class="Delimiter">`(</span><span class="muLispKeyword">let</span><span class="muLispNormal"> </span><span class="Delimiter">,</span><span class="muLispNormal">var </span><span class="Delimiter">,</span><span class="muLispNormal">init</span>
<span class="muLispNormal"> </span><span class="Delimiter">(</span><span class="muLispKeyword">while</span><span class="muLispNormal"> </span><span class="Delimiter">,</span><span class="muLispNormal">test</span>
<span class="muLispNormal"> </span><span class="Delimiter">,@</span><span class="muLispNormal">body</span>
<span class="muLispNormal"> </span><span class="Delimiter">,</span><span class="muLispNormal">update</span><span class="Delimiter">)))</span><span class="Normal">]</span>)
(hline1 . <span class="Normal">[</span><span class="Delimiter">(</span><span class="muLispKeyword">def</span><span class="muLispNormal"> </span><span class="Delimiter">(</span><span class="muLispNormal">hline1 screen y x xmax color</span><span class="Delimiter">)</span>
<span class="muLispNormal"> </span><span class="Delimiter">(</span><span class="muLispKeyword">while</span><span class="muLispNormal"> </span><span class="Delimiter">(</span><span class="muLispNormal">< x xmax</span><span class="Delimiter">)</span>
<span class="muLispNormal"> </span><span class="Delimiter">(</span><span class="muLispNormal">pixel screen x y color</span><span class="Delimiter">)</span>
<span class="muLispNormal"> </span><span class="Delimiter">(</span><span class="muLispNormal">++ x</span><span class="Delimiter">)))</span><span class="Normal">]</span>)
(vline1 . <span class="Normal">[</span><span class="Delimiter">(</span><span class="muLispKeyword">def</span><span class="muLispNormal"> </span><span class="Delimiter">(</span><span class="muLispNormal">vline1 screen x y ymax color</span><span class="Delimiter">)</span>
<span class="muLispNormal"> </span><span class="Delimiter">(</span><span class="muLispKeyword">while</span><span class="muLispNormal"> </span><span class="Delimiter">(</span><span class="muLispNormal">< y ymax</span><span class="Delimiter">)</span>
<span class="muLispNormal"> </span><span class="Delimiter">(</span><span class="muLispNormal">pixel screen x y color</span><span class="Delimiter">)</span>
<span class="muLispNormal"> </span><span class="Delimiter">(</span><span class="muLispNormal">++ y</span><span class="Delimiter">)))</span><span class="Normal">]</span>)
(hline . <span class="Normal">[</span><span class="Delimiter">(</span><span class="muLispKeyword">def</span><span class="muLispNormal"> </span><span class="Delimiter">(</span><span class="muLispNormal">hline screen y color</span><span class="Delimiter">)</span>
<span class="muLispNormal"> </span><span class="Delimiter">(</span><span class="muLispNormal">hline1 screen y </span><span class="Constant">0</span><span class="muLispNormal"> </span><span class="Delimiter">(</span><span class="muLispNormal">width screen</span><span class="Delimiter">)</span><span class="muLispNormal"> color</span><span class="Delimiter">))</span><span class="Normal">]</span>)
(vline . <span class="Normal">[</span><span class="Delimiter">(</span><span class="muLispKeyword">def</span><span class="muLispNormal"> </span><span class="Delimiter">(</span><span class="muLispNormal">vline screen x color</span><span class="Delimiter">)</span>
<span class="muLispNormal"> </span><span class="Delimiter">(</span><span class="muLispNormal">vline1 screen x </span><span class="Constant">0</span><span class="muLispNormal"> </span><span class="Delimiter">(</span><span class="muLispNormal">height screen</span><span class="Delimiter">)</span><span class="muLispNormal"> color</span><span class="Delimiter">))</span><span class="Normal">]</span>)
(line . <span class="Normal">[</span><span class="Delimiter">(</span><span class="muLispKeyword">def</span><span class="muLispNormal"> </span><span class="Delimiter">(</span><span class="muLispNormal">line screen x0 y0 x1 y1 color</span><span class="Delimiter">)</span>
<span class="muLispNormal"> </span><span class="Delimiter">(</span><span class="muLispKeyword">let</span><span class="muLispNormal"> </span><span class="Delimiter">(</span><span class="muLispNormal">x y</span><span class="Delimiter">)</span><span class="muLispNormal"> </span><span class="Delimiter">`(,</span><span class="muLispNormal">x0 </span><span class="Delimiter">,</span><span class="muLispNormal">y0</span><span class="Delimiter">)</span>
<span class="muLispNormal"> </span><span class="Delimiter">(</span><span class="muLispKeyword">let</span><span class="muLispNormal"> dx </span><span class="Delimiter">(</span><span class="muLispNormal">abs </span><span class="Delimiter">(</span><span class="muLispNormal">- x1 x0</span><span class="Delimiter">))</span>
<span class="muLispNormal"> </span><span class="Delimiter">(</span><span class="muLispKeyword">let</span><span class="muLispNormal"> dy </span><span class="Delimiter">(</span><span class="muLispNormal">- </span><span class="Constant">0</span><span class="muLispNormal"> </span><span class="Delimiter">(</span><span class="muLispNormal">abs </span><span class="Delimiter">(</span><span class="muLispNormal">- y1 y0</span><span class="Delimiter">)))</span>
<span class="muLispNormal"> </span><span class="Delimiter">(</span><span class="muLispKeyword">let</span><span class="muLispNormal"> sx </span><span class="Delimiter">(</span><span class="muLispNormal">sgn </span><span class="Delimiter">(</span><span class="muLispNormal">- x1 x0</span><span class="Delimiter">))</span>
<span class="muLispNormal"> </span><span class="Delimiter">(</span><span class="muLispKeyword">let</span><span class="muLispNormal"> sy </span><span class="Delimiter">(</span><span class="muLispNormal">sgn </span><span class="Delimiter">(</span><span class="muLispNormal">- y1 y0</span><span class="Delimiter">))</span>
<span class="muLispNormal"> </span><span class="Delimiter">(</span><span class="muLispKeyword">let</span><span class="muLispNormal"> err </span><span class="Delimiter">(</span><span class="muLispNormal">+ dx dy</span><span class="Delimiter">)</span>
<span class="muLispNormal"> </span><span class="Delimiter">(</span><span class="muLispKeyword">while</span><span class="muLispNormal"> </span><span class="Delimiter">(</span><span class="muLispNormal">not </span><span class="Delimiter">(</span><span class="muLispNormal">and </span><span class="Delimiter">(</span><span class="muLispNormal">= x x1</span><span class="Delimiter">)</span>
<span class="muLispNormal"> </span><span class="Delimiter">(</span><span class="muLispNormal">= y y1</span><span class="Delimiter">)))</span>
<span class="muLispNormal"> </span><span class="Delimiter">(</span><span class="muLispNormal">pixel screen x y color</span><span class="Delimiter">)</span>
<span class="muLispNormal"> </span><span class="Delimiter">(</span><span class="muLispKeyword">let</span><span class="muLispNormal"> e2 </span><span class="Delimiter">(</span><span class="muLispNormal">* err </span><span class="Constant">2</span><span class="Delimiter">)</span>
<span class="muLispNormal"> </span><span class="Delimiter">(</span><span class="muLispNormal">when </span><span class="Delimiter">(</span><span class="muLispNormal">>= e2 dy</span><span class="Delimiter">)</span>
<span class="muLispNormal"> </span><span class="Delimiter">(</span><span class="muLispNormal">+= x sx</span><span class="Delimiter">))</span>
<span class="muLispNormal"> </span><span class="Delimiter">(</span><span class="muLispNormal">when </span><span class="Delimiter">(</span><span class="muLispNormal"><= e2 dx</span><span class="Delimiter">)</span>
<span class="muLispNormal"> </span><span class="Delimiter">(</span><span class="muLispNormal">+= y sy</span><span class="Delimiter">))</span>
<span class="muLispNormal"> </span><span class="Delimiter">(</span><span class="muLispNormal">+= err</span>
<span class="muLispNormal"> </span><span class="Delimiter">(</span><span class="muLispNormal">+ </span><span class="Delimiter">(</span><span class="muLispKeyword">if</span><span class="muLispNormal"> </span><span class="Delimiter">(</span><span class="muLispNormal">>= e2 dy</span><span class="Delimiter">)</span>
<span class="muLispNormal"> dy</span>
<span class="muLispNormal"> </span><span class="Constant">0</span><span class="Delimiter">)</span>
<span class="muLispNormal"> </span><span class="Delimiter">(</span><span class="muLispKeyword">if</span><span class="muLispNormal"> </span><span class="Delimiter">(</span><span class="muLispNormal"><= e2 dx</span><span class="Delimiter">)</span>
<span class="muLispNormal"> dx</span>
<span class="muLispNormal"> </span><span class="Constant">0</span><span class="Delimiter">))))))))))))</span><span class="Normal">]</span>)
(read_line . <span class="Normal">[</span><span class="Delimiter">(</span><span class="muLispKeyword">def</span><span class="muLispNormal"> </span><span class="Delimiter">(</span><span class="muLispNormal">read_line keyboard</span><span class="Delimiter">)</span>
<span class="muLispNormal"> </span><span class="Delimiter">(</span><span class="muLispKeyword">let</span><span class="muLispNormal"> str </span><span class="Delimiter">(</span><span class="muLispNormal">stream</span><span class="Delimiter">)</span>
<span class="muLispNormal"> </span><span class="Delimiter">(</span><span class="muLispKeyword">let</span><span class="muLispNormal"> c </span><span class="Delimiter">(</span><span class="muLispNormal">key keyboard</span><span class="Delimiter">)</span>
<span class="muLispNormal"> </span><span class="Delimiter">(</span><span class="muLispKeyword">while</span><span class="muLispNormal"> </span><span class="Delimiter">(</span><span class="muLispNormal">not </span><span class="Delimiter">(</span><span class="muLispNormal">or </span><span class="Delimiter">(</span><span class="muLispNormal">= c </span><span class="Constant">0</span><span class="Delimiter">)</span><span class="muLispNormal"> </span><span class="Delimiter">(</span><span class="muLispNormal">= c </span><span class="Constant">10</span><span class="Delimiter">)))</span>
<span class="muLispNormal"> </span><span class="Delimiter">(</span><span class="muLispNormal">write str c</span><span class="Delimiter">)</span>
<span class="muLispNormal"> </span><span class="Delimiter">(</span><span class="muLispNormal">set c </span><span class="Delimiter">(</span><span class="muLispNormal">key keyboard</span><span class="Delimiter">))))</span>
<span class="muLispNormal"> str</span><span class="Delimiter">))</span><span class="Normal">]</span>)
(wait . <span class="Normal">[</span><span class="Delimiter">(</span><span class="muLispKeyword">def</span><span class="muLispNormal"> </span><span class="Delimiter">(</span><span class="muLispNormal">wait keyboard</span><span class="Delimiter">)</span>
<span class="muLispNormal"> </span><span class="Delimiter">(</span><span class="muLispKeyword">while</span><span class="muLispNormal"> </span><span class="Delimiter">(</span><span class="muLispNormal">= </span><span class="Constant">0</span><span class="muLispNormal"> </span><span class="Delimiter">(</span><span class="muLispNormal">key keyboard</span><span class="Delimiter">))))</span><span class="Normal">]</span>)
(sq . <span class="Normal">[</span><span class="Delimiter">(</span><span class="muLispKeyword">def</span><span class="muLispNormal"> </span><span class="Delimiter">(</span><span class="muLispNormal">sq n</span><span class="Delimiter">)</span><span class="muLispNormal"> </span><span class="Delimiter">(</span><span class="muLispNormal">* n n</span><span class="Delimiter">))</span><span class="Normal">]</span>)
(cube . <span class="Normal">[</span><span class="Delimiter">(</span><span class="muLispKeyword">def</span><span class="muLispNormal"> </span><span class="Delimiter">(</span><span class="muLispNormal">cube n</span><span class="Delimiter">)</span><span class="muLispNormal"> </span><span class="Delimiter">(</span><span class="muLispNormal">* </span><span class="Delimiter">(</span><span class="muLispNormal">* n n</span><span class="Delimiter">)</span><span class="muLispNormal"> n</span><span class="Delimiter">))</span><span class="Normal">]</span>)
(fill_rect . <span class="Normal">[</span><span class="Delimiter">(</span><span class="muLispKeyword">def</span><span class="muLispNormal"> </span><span class="Delimiter">(</span><span class="muLispNormal">fill_rect screen x1 y1 x2 y2 color</span><span class="Delimiter">)</span>
<span class="muLispNormal"> </span><span class="Delimiter">(</span><span class="muLispKeyword">for</span><span class="muLispNormal"> y y1 </span><span class="Delimiter">(</span><span class="muLispNormal">< y y2</span><span class="Delimiter">)</span><span class="muLispNormal"> </span><span class="Delimiter">(</span><span class="muLispNormal">++ y</span><span class="Delimiter">)</span>
<span class="muLispNormal"> </span><span class="Delimiter">(</span><span class="muLispNormal">hline1 screen y x1 x2 color</span><span class="Delimiter">)))</span><span class="Normal">]</span>)
(chessboard_row . <span class="Normal">[</span><span class="Delimiter">(</span><span class="muLispKeyword">def</span><span class="muLispNormal"> </span><span class="Delimiter">(</span><span class="muLispNormal">chessboard_row screen px y x xmax</span><span class="Delimiter">)</span>
<span class="muLispNormal"> </span><span class="Delimiter">(</span><span class="muLispKeyword">while</span><span class="muLispNormal"> </span><span class="Delimiter">(</span><span class="muLispNormal">< x xmax</span><span class="Delimiter">)</span>
<span class="muLispNormal"> </span><span class="Delimiter">(</span><span class="muLispNormal">fill_rect screen</span>
<span class="muLispNormal"> x y</span>
<span class="muLispNormal"> </span><span class="Delimiter">(</span><span class="muLispNormal">+ x px</span><span class="Delimiter">)</span><span class="muLispNormal"> </span><span class="Delimiter">(</span><span class="muLispNormal">+ y px</span><span class="Delimiter">)</span><span class="muLispNormal"> </span><span class="Constant">15</span><span class="Delimiter">)</span>
<span class="muLispNormal"> </span><span class="Delimiter">(</span><span class="muLispNormal">+= x </span><span class="Delimiter">(</span><span class="muLispNormal">* px </span><span class="Constant">2</span><span class="Delimiter">))))</span><span class="Normal">]</span>)
(chessboard . <span class="Normal">[</span><span class="Delimiter">(</span><span class="muLispKeyword">def</span><span class="muLispNormal"> </span><span class="Delimiter">(</span><span class="muLispNormal">chessboard screen px</span><span class="Delimiter">)</span>
<span class="muLispNormal"> </span><span class="Delimiter">(</span><span class="muLispNormal">clear screen</span><span class="Delimiter">)</span>
<span class="muLispNormal"> </span><span class="Delimiter">(</span><span class="muLispKeyword">let</span><span class="muLispNormal"> xmax </span><span class="Delimiter">(</span><span class="muLispNormal">width screen</span><span class="Delimiter">)</span>
<span class="muLispNormal"> </span><span class="Delimiter">(</span><span class="muLispKeyword">let</span><span class="muLispNormal"> ymax </span><span class="Delimiter">(</span><span class="muLispNormal">height screen</span><span class="Delimiter">)</span>
<span class="muLispNormal"> </span><span class="Delimiter">(</span><span class="muLispKeyword">for</span><span class="muLispNormal"> y </span><span class="Constant">0</span><span class="muLispNormal"> </span><span class="Delimiter">(</span><span class="muLispNormal">< y ymax</span><span class="Delimiter">)</span><span class="muLispNormal"> </span><span class="Delimiter">(</span><span class="muLispNormal">+= y px</span><span class="Delimiter">)</span>
<span class="muLispNormal"> </span><span class="Delimiter">(</span><span class="muLispNormal">chessboard_row screen px y </span><span class="Constant">0</span><span class="muLispNormal"> xmax</span><span class="Delimiter">)</span>
<span class="muLispNormal"> </span><span class="Delimiter">(</span><span class="muLispNormal">+= y px</span><span class="Delimiter">)</span>
<span class="muLispNormal"> </span><span class="Delimiter">(</span><span class="muLispNormal">chessboard_row screen px y px xmax</span><span class="Delimiter">)))))</span><span class="Normal">]</span>)
(circle . <span class="Normal">[</span><span class="Delimiter">(</span><span class="muLispKeyword">def</span><span class="muLispNormal"> </span><span class="Delimiter">(</span><span class="muLispNormal">circle screen cx cy r clr</span><span class="Delimiter">)</span>
<span class="muLispNormal"> </span><span class="Delimiter">(</span><span class="muLispKeyword">let</span><span class="muLispNormal"> x </span><span class="Delimiter">(</span><span class="muLispNormal">- </span><span class="Constant">0</span><span class="muLispNormal"> r</span><span class="Delimiter">)</span>
<span class="muLispNormal"> </span><span class="Delimiter">(</span><span class="muLispKeyword">let</span><span class="muLispNormal"> y </span><span class="Constant">0</span>
<span class="muLispNormal"> </span><span class="Delimiter">(</span><span class="muLispKeyword">let</span><span class="muLispNormal"> err </span><span class="Delimiter">(</span><span class="muLispNormal">- </span><span class="Constant">2</span><span class="muLispNormal"> </span><span class="Delimiter">(</span><span class="muLispNormal">* </span><span class="Constant">2</span><span class="muLispNormal"> r</span><span class="Delimiter">))</span>
<span class="muLispNormal"> </span><span class="Delimiter">(</span><span class="muLispKeyword">let</span><span class="muLispNormal"> continue </span><span class="Constant">1</span>
<span class="muLispNormal"> </span><span class="Delimiter">(</span><span class="muLispKeyword">while</span><span class="muLispNormal"> continue</span>
<span class="muLispNormal"> </span><span class="Delimiter">(</span><span class="muLispNormal">pixel screen </span><span class="Delimiter">(</span><span class="muLispNormal">- cx x</span><span class="Delimiter">)</span><span class="muLispNormal"> </span><span class="Delimiter">(</span><span class="muLispNormal">+ cy y</span><span class="Delimiter">)</span><span class="muLispNormal"> clr</span><span class="Delimiter">)</span>
<span class="muLispNormal"> </span><span class="Delimiter">(</span><span class="muLispNormal">pixel screen </span><span class="Delimiter">(</span><span class="muLispNormal">- cx y</span><span class="Delimiter">)</span><span class="muLispNormal"> </span><span class="Delimiter">(</span><span class="muLispNormal">- cy x</span><span class="Delimiter">)</span><span class="muLispNormal"> clr</span><span class="Delimiter">)</span>
<span class="muLispNormal"> </span><span class="Delimiter">(</span><span class="muLispNormal">pixel screen </span><span class="Delimiter">(</span><span class="muLispNormal">+ cx x</span><span class="Delimiter">)</span><span class="muLispNormal"> </span><span class="Delimiter">(</span><span class="muLispNormal">- cy y</span><span class="Delimiter">)</span><span class="muLispNormal"> clr</span><span class="Delimiter">)</span>
<span class="muLispNormal"> </span><span class="Delimiter">(</span><span class="muLispNormal">pixel screen </span><span class="Delimiter">(</span><span class="muLispNormal">+ cx y</span><span class="Delimiter">)</span><span class="muLispNormal"> </span><span class="Delimiter">(</span><span class="muLispNormal">+ cy x</span><span class="Delimiter">)</span><span class="muLispNormal"> clr</span><span class="Delimiter">)</span>
<span class="muLispNormal"> </span><span class="Delimiter">(</span><span class="muLispNormal">set r err</span><span class="Delimiter">)</span>
<span class="muLispNormal"> </span><span class="Delimiter">(</span><span class="muLispNormal">when </span><span class="Delimiter">(</span><span class="muLispNormal"><= r y</span><span class="Delimiter">)</span>
<span class="muLispNormal"> </span><span class="Delimiter">(</span><span class="muLispNormal">++ y</span><span class="Delimiter">)</span>
<span class="muLispNormal"> </span><span class="Delimiter">(</span><span class="muLispNormal">+= err</span>
<span class="muLispNormal"> </span><span class="Delimiter">(</span><span class="muLispNormal">+ </span><span class="Constant">1</span><span class="muLispNormal"> </span><span class="Delimiter">(</span><span class="muLispNormal">* </span><span class="Constant">2</span><span class="muLispNormal"> y</span><span class="Delimiter">))))</span>
<span class="muLispNormal"> </span><span class="Delimiter">(</span><span class="muLispNormal">when </span><span class="Delimiter">(</span><span class="muLispNormal">or </span><span class="Delimiter">(</span><span class="muLispNormal">> r x</span><span class="Delimiter">)</span><span class="muLispNormal"> </span><span class="Delimiter">(</span><span class="muLispNormal">> err y</span><span class="Delimiter">))</span>
<span class="muLispNormal"> </span><span class="Delimiter">(</span><span class="muLispNormal">++ x</span><span class="Delimiter">)</span>
<span class="muLispNormal"> </span><span class="Delimiter">(</span><span class="muLispNormal">+= err</span>
<span class="muLispNormal"> </span><span class="Delimiter">(</span><span class="muLispNormal">+ </span><span class="Constant">1</span><span class="muLispNormal"> </span><span class="Delimiter">(</span><span class="muLispNormal">* </span><span class="Constant">2</span><span class="muLispNormal"> x</span><span class="Delimiter">))))</span>
<span class="muLispNormal"> </span><span class="Delimiter">(</span><span class="muLispNormal">set continue </span><span class="Delimiter">(</span><span class="muLispNormal">< x </span><span class="Constant">0</span><span class="Delimiter">))))))))</span><span class="Normal">]</span>)
(ring . <span class="Normal">[</span><span class="Delimiter">(</span><span class="muLispKeyword">def</span><span class="muLispNormal"> </span><span class="Delimiter">(</span><span class="muLispNormal">ring screen cx cy r0 w clr</span><span class="Delimiter">)</span>
<span class="muLispNormal"> </span><span class="Delimiter">(</span><span class="muLispKeyword">for</span><span class="muLispNormal"> r r0 </span><span class="Delimiter">(</span><span class="muLispNormal">< r </span><span class="Delimiter">(</span><span class="muLispNormal">+ r0 w</span><span class="Delimiter">))</span><span class="muLispNormal"> </span><span class="Delimiter">(</span><span class="muLispNormal">++ r</span><span class="Delimiter">)</span>
<span class="muLispNormal"> </span><span class="Delimiter">(</span><span class="muLispNormal">circle screen cx cy r clr</span><span class="Delimiter">)))</span><span class="Normal">]</span>)
(circle_rainbow . <span class="Normal">[</span><span class="Delimiter">(</span><span class="muLispKeyword">def</span><span class="muLispNormal"> </span><span class="Delimiter">(</span><span class="muLispNormal">circle_rainbow scr cx cy r w</span><span class="Delimiter">)</span>
<span class="muLispNormal"> </span><span class="Delimiter">(</span><span class="muLispNormal">ring scr cx cy r w </span><span class="Constant">37</span><span class="Delimiter">)</span>
<span class="muLispNormal"> </span><span class="Delimiter">(</span><span class="muLispNormal">+= r w</span><span class="Delimiter">)</span>
<span class="muLispNormal"> </span><span class="Delimiter">(</span><span class="muLispNormal">ring scr cx cy r w </span><span class="Constant">33</span><span class="Delimiter">)</span>
<span class="muLispNormal"> </span><span class="Delimiter">(</span><span class="muLispNormal">+= r w</span><span class="Delimiter">)</span>
<span class="muLispNormal"> </span><span class="Delimiter">(</span><span class="muLispNormal">ring scr cx cy r w </span><span class="Constant">55</span><span class="Delimiter">)</span>
<span class="muLispNormal"> </span><span class="Delimiter">(</span><span class="muLispNormal">+= r w</span><span class="Delimiter">)</span>
<span class="muLispNormal"> </span><span class="Delimiter">(</span><span class="muLispNormal">ring scr cx cy r w </span><span class="Constant">52</span><span class="Delimiter">)</span>
<span class="muLispNormal"> </span><span class="Delimiter">(</span><span class="muLispNormal">+= r w</span><span class="Delimiter">)</span>
<span class="muLispNormal"> </span><span class="Delimiter">(</span><span class="muLispNormal">ring scr cx cy r w </span><span class="Constant">47</span><span class="Delimiter">)</span>
<span class="muLispNormal"> </span><span class="Delimiter">(</span><span class="muLispNormal">+= r w</span><span class="Delimiter">)</span>
<span class="muLispNormal"> </span><span class="Delimiter">(</span><span class="muLispNormal">ring scr cx cy r w </span><span class="Constant">45</span><span class="Delimiter">)</span>
<span class="muLispNormal"> </span><span class="Delimiter">(</span><span class="muLispNormal">+= r w</span><span class="Delimiter">)</span>
<span class="muLispNormal"> </span><span class="Delimiter">(</span><span class="muLispNormal">ring scr cx cy r w </span><span class="Constant">44</span><span class="Delimiter">)</span>
<span class="muLispNormal"> </span><span class="Delimiter">(</span><span class="muLispNormal">+= r w</span><span class="Delimiter">)</span>
<span class="muLispNormal"> </span><span class="Delimiter">(</span><span class="muLispNormal">ring scr cx cy r w </span><span class="Constant">42</span><span class="Delimiter">)</span>
<span class="muLispNormal"> </span><span class="Delimiter">(</span><span class="muLispNormal">+= r w</span><span class="Delimiter">)</span>
<span class="muLispNormal"> </span><span class="Delimiter">(</span><span class="muLispNormal">ring scr cx cy r w </span><span class="Constant">41</span><span class="Delimiter">)</span>
<span class="muLispNormal"> </span><span class="Delimiter">(</span><span class="muLispNormal">+= r w</span><span class="Delimiter">)</span>
<span class="muLispNormal"> </span><span class="Delimiter">(</span><span class="muLispNormal">ring scr cx cy r w </span><span class="Constant">40</span><span class="Delimiter">))</span><span class="Normal">]</span>)
(bowboard . <span class="Normal">[</span><span class="Delimiter">(</span><span class="muLispKeyword">def</span><span class="muLispNormal"> </span><span class="Delimiter">(</span><span class="muLispNormal">bowboard screen r</span><span class="Delimiter">)</span>
<span class="muLispNormal"> </span><span class="Delimiter">(</span><span class="muLispKeyword">let</span><span class="muLispNormal"> xmax </span><span class="Delimiter">(</span><span class="muLispNormal">width screen</span><span class="Delimiter">)</span>
<span class="muLispNormal"> </span><span class="Delimiter">(</span><span class="muLispKeyword">let</span><span class="muLispNormal"> ymax </span><span class="Delimiter">(</span><span class="muLispNormal">height screen</span><span class="Delimiter">)</span>
<span class="muLispNormal"> </span><span class="Delimiter">(</span><span class="muLispKeyword">let</span><span class="muLispNormal"> side </span><span class="Delimiter">(</span><span class="muLispNormal">* </span><span class="Constant">2</span><span class="muLispNormal"> r</span><span class="Delimiter">)</span>
<span class="muLispNormal"> </span><span class="Delimiter">(</span><span class="muLispKeyword">for</span><span class="muLispNormal"> y r </span><span class="Delimiter">(</span><span class="muLispNormal">< y ymax</span><span class="Delimiter">)</span><span class="muLispNormal"> </span><span class="Delimiter">(</span><span class="muLispNormal">+= y side</span><span class="Delimiter">)</span>
<span class="muLispNormal"> </span><span class="Delimiter">(</span><span class="muLispKeyword">for</span><span class="muLispNormal"> x r </span><span class="Delimiter">(</span><span class="muLispNormal">< x xmax</span><span class="Delimiter">)</span><span class="muLispNormal"> </span><span class="Delimiter">(</span><span class="muLispNormal">+= x side</span><span class="Delimiter">)</span>
<span class="muLispNormal"> </span><span class="Delimiter">(</span><span class="muLispNormal">circle_rainbow screen x y </span><span class="Delimiter">(</span><span class="muLispNormal">- r </span><span class="Constant">100</span><span class="Delimiter">)</span><span class="muLispNormal"> </span><span class="Constant">10</span><span class="Delimiter">)))))))</span><span class="Normal">]</span>)
(task . <span class="Normal">[</span><span class="Delimiter">(</span><span class="muLispKeyword">def</span><span class="muLispNormal"> </span><span class="Delimiter">(</span><span class="muLispNormal">task screen keyboard</span><span class="Delimiter">)</span>
<span class="muLispNormal"> </span><span class="Delimiter">(</span><span class="muLispKeyword">let</span><span class="muLispNormal"> xmax </span><span class="Delimiter">(</span><span class="muLispNormal">width screen</span><span class="Delimiter">)</span>
<span class="muLispNormal"> </span><span class="Delimiter">(</span><span class="muLispKeyword">let</span><span class="muLispNormal"> ymax </span><span class="Delimiter">(</span><span class="muLispNormal">height screen</span><span class="Delimiter">)</span>
<span class="muLispNormal"> </span><span class="Delimiter">(</span><span class="muLispKeyword">for</span><span class="muLispNormal"> y </span><span class="Constant">0</span><span class="muLispNormal"> </span><span class="Delimiter">(</span><span class="muLispNormal">< y ymax</span><span class="Delimiter">)</span><span class="muLispNormal"> </span><span class="Delimiter">(</span><span class="muLispNormal">+= y </span><span class="Constant">4</span><span class="Delimiter">)</span>
<span class="muLispNormal"> </span><span class="Comment">#(wait keyboard)</span>
<span class="muLispNormal"> </span><span class="Delimiter">(</span><span class="muLispKeyword">for</span><span class="muLispNormal"> x </span><span class="Constant">0</span><span class="muLispNormal"> </span><span class="Delimiter">(</span><span class="muLispNormal">< x xmax</span><span class="Delimiter">)</span><span class="muLispNormal"> </span><span class="Delimiter">(</span><span class="muLispNormal">+= x </span><span class="Constant">1</span><span class="Delimiter">)</span>
<span class="muLispNormal"> </span><span class="Delimiter">(</span><span class="muLispNormal">pixel screen x y</span>
<span class="muLispNormal"> </span><span class="Comment"># color</span>
<span class="muLispNormal"> </span><span class="Delimiter">(</span><span class="muLispNormal">+ </span><span class="Constant">16</span><span class="muLispNormal"> </span><span class="Delimiter">(</span><span class="muLispNormal">+ </span><span class="Delimiter">(</span><span class="muLispNormal">/ x </span><span class="Constant">4</span><span class="Delimiter">)</span><span class="muLispNormal"> </span><span class="Delimiter">(</span><span class="muLispNormal">cube </span><span class="Delimiter">(</span><span class="muLispNormal">/ y </span><span class="Constant">4</span><span class="Delimiter">))))))))))</span><span class="Normal">]</span>)
(main . <span class="Normal">[</span><span class="Delimiter">(</span><span class="muLispKeyword">def</span><span class="muLispNormal"> </span><span class="Delimiter">(</span><span class="muLispNormal">main screen keyboard</span><span class="Delimiter">)</span>
<span class="muLispNormal"> </span><span class="Delimiter">(</span><span class="muLispNormal">task screen keyboard</span><span class="Delimiter">))</span><span class="Normal">]</span>)
))
(<span class="muLispOuterKeyword">sandbox</span> . (task screen keyboard))
)
</pre>
</body>
</html>
<!-- vim: set foldmethod=manual : -->