1071 lines
137 KiB
HTML
1071 lines
137 KiB
HTML
|
||
<!DOCTYPE html>
|
||
|
||
<html>
|
||
<head>
|
||
<meta charset="utf-8" />
|
||
<meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="generator" content="Docutils 0.17.1: http://docutils.sourceforge.net/" />
|
||
|
||
<title>Function Reference — Thun 0.4.1 documentation</title>
|
||
<link rel="stylesheet" type="text/css" href="_static/pygments.css" />
|
||
<link rel="stylesheet" type="text/css" href="_static/alabaster.css" />
|
||
<script data-url_root="./" id="documentation_options" src="_static/documentation_options.js"></script>
|
||
<script src="_static/jquery.js"></script>
|
||
<script src="_static/underscore.js"></script>
|
||
<script src="_static/doctools.js"></script>
|
||
<link rel="index" title="Index" href="genindex.html" />
|
||
<link rel="search" title="Search" href="search.html" />
|
||
<link rel="next" title="Functions Grouped by, er, Function with Examples" href="lib.html" />
|
||
<link rel="prev" title="Tracing Joy Execution" href="pretty.html" />
|
||
|
||
<link rel="stylesheet" href="_static/custom.css" type="text/css" />
|
||
|
||
|
||
<meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9" />
|
||
|
||
</head><body>
|
||
|
||
|
||
<div class="document">
|
||
<div class="documentwrapper">
|
||
<div class="bodywrapper">
|
||
|
||
|
||
<div class="body" role="main">
|
||
|
||
<section id="function-reference">
|
||
<h1>Function Reference<a class="headerlink" href="#function-reference" title="Permalink to this headline">¶</a></h1>
|
||
<section id="module-joy.library">
|
||
<span id="joy-library"></span><h2><code class="docutils literal notranslate"><span class="pre">joy.library</span></code><a class="headerlink" href="#module-joy.library" title="Permalink to this headline">¶</a></h2>
|
||
<p>This module contains the Joy function infrastructure and a library of
|
||
functions. Its main export is a Python function initialize() that
|
||
returns a dictionary of Joy functions suitable for use with the joy()
|
||
function.</p>
|
||
<dl class="py function">
|
||
<dt class="sig sig-object py" id="joy.library.BinaryLogicWrapper">
|
||
<span class="sig-prename descclassname"><span class="pre">joy.library.</span></span><span class="sig-name descname"><span class="pre">BinaryLogicWrapper</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">f</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/joy/library.html#BinaryLogicWrapper"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#joy.library.BinaryLogicWrapper" title="Permalink to this definition">¶</a></dt>
|
||
<dd><p>Wrap functions that take two numbers and return a single result.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="py function">
|
||
<dt class="sig sig-object py" id="joy.library.BinaryMathWrapper">
|
||
<span class="sig-prename descclassname"><span class="pre">joy.library.</span></span><span class="sig-name descname"><span class="pre">BinaryMathWrapper</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">f</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/joy/library.html#BinaryMathWrapper"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#joy.library.BinaryMathWrapper" title="Permalink to this definition">¶</a></dt>
|
||
<dd><p>Wrap functions that take two numbers and return a single result.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="py class">
|
||
<dt class="sig sig-object py" id="joy.library.Def">
|
||
<em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">joy.library.</span></span><span class="sig-name descname"><span class="pre">Def</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">name</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">body</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/joy/library.html#Def"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#joy.library.Def" title="Permalink to this definition">¶</a></dt>
|
||
<dd><p>Definitions created by inscribe.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="py function">
|
||
<dt class="sig sig-object py" id="joy.library.FunctionWrapper">
|
||
<span class="sig-prename descclassname"><span class="pre">joy.library.</span></span><span class="sig-name descname"><span class="pre">FunctionWrapper</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">f</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/joy/library.html#FunctionWrapper"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#joy.library.FunctionWrapper" title="Permalink to this definition">¶</a></dt>
|
||
<dd><p>Set name attribute.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="py function">
|
||
<dt class="sig sig-object py" id="joy.library.SimpleFunctionWrapper">
|
||
<span class="sig-prename descclassname"><span class="pre">joy.library.</span></span><span class="sig-name descname"><span class="pre">SimpleFunctionWrapper</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">f</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/joy/library.html#SimpleFunctionWrapper"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#joy.library.SimpleFunctionWrapper" title="Permalink to this definition">¶</a></dt>
|
||
<dd><p>Wrap functions that take and return just a stack.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="py function">
|
||
<dt class="sig sig-object py" id="joy.library.UnaryBuiltinWrapper">
|
||
<span class="sig-prename descclassname"><span class="pre">joy.library.</span></span><span class="sig-name descname"><span class="pre">UnaryBuiltinWrapper</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">f</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/joy/library.html#UnaryBuiltinWrapper"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#joy.library.UnaryBuiltinWrapper" title="Permalink to this definition">¶</a></dt>
|
||
<dd><p>Wrap functions that take one argument and return a single result.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="py function">
|
||
<dt class="sig sig-object py" id="joy.library.add_aliases">
|
||
<span class="sig-prename descclassname"><span class="pre">joy.library.</span></span><span class="sig-name descname"><span class="pre">add_aliases</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">D</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">A</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/joy/library.html#add_aliases"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#joy.library.add_aliases" title="Permalink to this definition">¶</a></dt>
|
||
<dd><p>Given a dict and a iterable of (name, [alias, …]) pairs, create
|
||
additional entries in the dict mapping each alias to the named function
|
||
if it’s in the dict. Aliases for functions not in the dict are ignored.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="py function">
|
||
<dt class="sig sig-object py" id="joy.library.app1">
|
||
<span class="sig-prename descclassname"><span class="pre">joy.library.</span></span><span class="sig-name descname"><span class="pre">app1</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">S</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">expression</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">dictionary</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/joy/library.html#app1"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#joy.library.app1" title="Permalink to this definition">¶</a></dt>
|
||
<dd><p>Given a quoted program on TOS and anything as the second stack item run
|
||
the program and replace the two args with the first result of the
|
||
program.</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span> <span class="o">...</span> <span class="n">x</span> <span class="p">[</span><span class="n">Q</span><span class="p">]</span> <span class="o">.</span> <span class="n">app1</span>
|
||
<span class="o">-----------------------------------</span>
|
||
<span class="o">...</span> <span class="p">[</span><span class="n">x</span> <span class="o">...</span><span class="p">]</span> <span class="p">[</span><span class="n">Q</span><span class="p">]</span> <span class="o">.</span> <span class="n">infra</span> <span class="n">first</span>
|
||
</pre></div>
|
||
</div>
|
||
</dd></dl>
|
||
|
||
<dl class="py function">
|
||
<dt class="sig sig-object py" id="joy.library.app2">
|
||
<span class="sig-prename descclassname"><span class="pre">joy.library.</span></span><span class="sig-name descname"><span class="pre">app2</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">S</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">expression</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">dictionary</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/joy/library.html#app2"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#joy.library.app2" title="Permalink to this definition">¶</a></dt>
|
||
<dd><p>Like app1 with two items.</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span> <span class="o">...</span> <span class="n">y</span> <span class="n">x</span> <span class="p">[</span><span class="n">Q</span><span class="p">]</span> <span class="o">.</span> <span class="n">app2</span>
|
||
<span class="o">-----------------------------------</span>
|
||
<span class="o">...</span> <span class="p">[</span><span class="n">y</span> <span class="o">...</span><span class="p">]</span> <span class="p">[</span><span class="n">Q</span><span class="p">]</span> <span class="o">.</span> <span class="n">infra</span> <span class="n">first</span>
|
||
<span class="p">[</span><span class="n">x</span> <span class="o">...</span><span class="p">]</span> <span class="p">[</span><span class="n">Q</span><span class="p">]</span> <span class="n">infra</span> <span class="n">first</span>
|
||
</pre></div>
|
||
</div>
|
||
</dd></dl>
|
||
|
||
<dl class="py function">
|
||
<dt class="sig sig-object py" id="joy.library.app3">
|
||
<span class="sig-prename descclassname"><span class="pre">joy.library.</span></span><span class="sig-name descname"><span class="pre">app3</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">S</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">expression</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">dictionary</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/joy/library.html#app3"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#joy.library.app3" title="Permalink to this definition">¶</a></dt>
|
||
<dd><p>Like app1 with three items.</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span> <span class="o">...</span> <span class="n">z</span> <span class="n">y</span> <span class="n">x</span> <span class="p">[</span><span class="n">Q</span><span class="p">]</span> <span class="o">.</span> <span class="n">app3</span>
|
||
<span class="o">-----------------------------------</span>
|
||
<span class="o">...</span> <span class="p">[</span><span class="n">z</span> <span class="o">...</span><span class="p">]</span> <span class="p">[</span><span class="n">Q</span><span class="p">]</span> <span class="o">.</span> <span class="n">infra</span> <span class="n">first</span>
|
||
<span class="p">[</span><span class="n">y</span> <span class="o">...</span><span class="p">]</span> <span class="p">[</span><span class="n">Q</span><span class="p">]</span> <span class="n">infra</span> <span class="n">first</span>
|
||
<span class="p">[</span><span class="n">x</span> <span class="o">...</span><span class="p">]</span> <span class="p">[</span><span class="n">Q</span><span class="p">]</span> <span class="n">infra</span> <span class="n">first</span>
|
||
</pre></div>
|
||
</div>
|
||
</dd></dl>
|
||
|
||
<dl class="py function">
|
||
<dt class="sig sig-object py" id="joy.library.b">
|
||
<span class="sig-prename descclassname"><span class="pre">joy.library.</span></span><span class="sig-name descname"><span class="pre">b</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">stack</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">expression</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">dictionary</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/joy/library.html#b"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#joy.library.b" title="Permalink to this definition">¶</a></dt>
|
||
<dd><div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">b</span> <span class="o">==</span> <span class="p">[</span><span class="n">i</span><span class="p">]</span> <span class="n">dip</span> <span class="n">i</span>
|
||
|
||
<span class="o">...</span> <span class="p">[</span><span class="n">P</span><span class="p">]</span> <span class="p">[</span><span class="n">Q</span><span class="p">]</span> <span class="n">b</span> <span class="o">==</span> <span class="o">...</span> <span class="p">[</span><span class="n">P</span><span class="p">]</span> <span class="n">i</span> <span class="p">[</span><span class="n">Q</span><span class="p">]</span> <span class="n">i</span>
|
||
<span class="o">...</span> <span class="p">[</span><span class="n">P</span><span class="p">]</span> <span class="p">[</span><span class="n">Q</span><span class="p">]</span> <span class="n">b</span> <span class="o">==</span> <span class="o">...</span> <span class="n">P</span> <span class="n">Q</span>
|
||
</pre></div>
|
||
</div>
|
||
</dd></dl>
|
||
|
||
<dl class="py function">
|
||
<dt class="sig sig-object py" id="joy.library.branch">
|
||
<span class="sig-prename descclassname"><span class="pre">joy.library.</span></span><span class="sig-name descname"><span class="pre">branch</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">stack</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">expression</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">dictionary</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/joy/library.html#branch"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#joy.library.branch" title="Permalink to this definition">¶</a></dt>
|
||
<dd><p>Use a Boolean value to select one of two quoted programs to run.</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">branch</span> <span class="o">==</span> <span class="n">roll</span><span class="o"><</span> <span class="n">choice</span> <span class="n">i</span>
|
||
</pre></div>
|
||
</div>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span> <span class="kc">False</span> <span class="p">[</span><span class="n">F</span><span class="p">]</span> <span class="p">[</span><span class="n">T</span><span class="p">]</span> <span class="n">branch</span>
|
||
<span class="o">--------------------------</span>
|
||
<span class="n">F</span>
|
||
|
||
<span class="kc">True</span> <span class="p">[</span><span class="n">F</span><span class="p">]</span> <span class="p">[</span><span class="n">T</span><span class="p">]</span> <span class="n">branch</span>
|
||
<span class="o">-------------------------</span>
|
||
<span class="n">T</span>
|
||
</pre></div>
|
||
</div>
|
||
</dd></dl>
|
||
|
||
<dl class="py function">
|
||
<dt class="sig sig-object py" id="joy.library.choice">
|
||
<span class="sig-prename descclassname"><span class="pre">joy.library.</span></span><span class="sig-name descname"><span class="pre">choice</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">stack</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/joy/library.html#choice"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#joy.library.choice" title="Permalink to this definition">¶</a></dt>
|
||
<dd><p>Use a Boolean value to select one of two items.</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span> <span class="n">A</span> <span class="n">B</span> <span class="n">false</span> <span class="n">choice</span>
|
||
<span class="o">----------------------</span>
|
||
<span class="n">A</span>
|
||
|
||
|
||
<span class="n">A</span> <span class="n">B</span> <span class="n">true</span> <span class="n">choice</span>
|
||
<span class="o">---------------------</span>
|
||
<span class="n">B</span>
|
||
</pre></div>
|
||
</div>
|
||
</dd></dl>
|
||
|
||
<dl class="py function">
|
||
<dt class="sig sig-object py" id="joy.library.clear">
|
||
<span class="sig-prename descclassname"><span class="pre">joy.library.</span></span><span class="sig-name descname"><span class="pre">clear</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">stack</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/joy/library.html#clear"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#joy.library.clear" title="Permalink to this definition">¶</a></dt>
|
||
<dd><p>Clear everything from the stack.</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">clear</span> <span class="o">==</span> <span class="n">stack</span> <span class="p">[</span><span class="n">pop</span> <span class="n">stack</span><span class="p">]</span> <span class="n">loop</span>
|
||
|
||
<span class="o">...</span> <span class="n">clear</span>
|
||
<span class="o">---------------</span>
|
||
</pre></div>
|
||
</div>
|
||
</dd></dl>
|
||
|
||
<dl class="py function">
|
||
<dt class="sig sig-object py" id="joy.library.cmp_">
|
||
<span class="sig-prename descclassname"><span class="pre">joy.library.</span></span><span class="sig-name descname"><span class="pre">cmp_</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">stack</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">expression</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">dictionary</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/joy/library.html#cmp_"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#joy.library.cmp_" title="Permalink to this definition">¶</a></dt>
|
||
<dd><p>cmp takes two values and three quoted programs on the stack and runs
|
||
one of the three depending on the results of comparing the two values:</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span> <span class="n">a</span> <span class="n">b</span> <span class="p">[</span><span class="n">G</span><span class="p">]</span> <span class="p">[</span><span class="n">E</span><span class="p">]</span> <span class="p">[</span><span class="n">L</span><span class="p">]</span> <span class="n">cmp</span>
|
||
<span class="o">-------------------------</span> <span class="n">a</span> <span class="o">></span> <span class="n">b</span>
|
||
<span class="n">G</span>
|
||
|
||
<span class="n">a</span> <span class="n">b</span> <span class="p">[</span><span class="n">G</span><span class="p">]</span> <span class="p">[</span><span class="n">E</span><span class="p">]</span> <span class="p">[</span><span class="n">L</span><span class="p">]</span> <span class="n">cmp</span>
|
||
<span class="o">-------------------------</span> <span class="n">a</span> <span class="o">=</span> <span class="n">b</span>
|
||
<span class="n">E</span>
|
||
|
||
<span class="n">a</span> <span class="n">b</span> <span class="p">[</span><span class="n">G</span><span class="p">]</span> <span class="p">[</span><span class="n">E</span><span class="p">]</span> <span class="p">[</span><span class="n">L</span><span class="p">]</span> <span class="n">cmp</span>
|
||
<span class="o">-------------------------</span> <span class="n">a</span> <span class="o"><</span> <span class="n">b</span>
|
||
<span class="n">L</span>
|
||
</pre></div>
|
||
</div>
|
||
</dd></dl>
|
||
|
||
<dl class="py function">
|
||
<dt class="sig sig-object py" id="joy.library.concat_">
|
||
<span class="sig-prename descclassname"><span class="pre">joy.library.</span></span><span class="sig-name descname"><span class="pre">concat_</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">S</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/joy/library.html#concat_"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#joy.library.concat_" title="Permalink to this definition">¶</a></dt>
|
||
<dd><p>Concatinate the two lists on the top of the stack.</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span> <span class="p">[</span><span class="n">a</span> <span class="n">b</span> <span class="n">c</span><span class="p">]</span> <span class="p">[</span><span class="n">d</span> <span class="n">e</span> <span class="n">f</span><span class="p">]</span> <span class="n">concat</span>
|
||
<span class="o">----------------------------</span>
|
||
<span class="p">[</span><span class="n">a</span> <span class="n">b</span> <span class="n">c</span> <span class="n">d</span> <span class="n">e</span> <span class="n">f</span><span class="p">]</span>
|
||
</pre></div>
|
||
</div>
|
||
</dd></dl>
|
||
|
||
<dl class="py function">
|
||
<dt class="sig sig-object py" id="joy.library.cond">
|
||
<span class="sig-prename descclassname"><span class="pre">joy.library.</span></span><span class="sig-name descname"><span class="pre">cond</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">stack</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">expression</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">dictionary</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/joy/library.html#cond"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#joy.library.cond" title="Permalink to this definition">¶</a></dt>
|
||
<dd><p>This combinator works like a case statement. It expects a single quote
|
||
on the stack that must contain zero or more condition quotes and a
|
||
default quote. Each condition clause should contain a quoted predicate
|
||
followed by the function expression to run if that predicate returns
|
||
true. If no predicates return true the default function runs.</p>
|
||
<p>It works by rewriting into a chain of nested <cite>ifte</cite> expressions, e.g.:</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span> <span class="p">[[[</span><span class="n">B0</span><span class="p">]</span> <span class="n">T0</span><span class="p">]</span> <span class="p">[[</span><span class="n">B1</span><span class="p">]</span> <span class="n">T1</span><span class="p">]</span> <span class="p">[</span><span class="n">D</span><span class="p">]]</span> <span class="n">cond</span>
|
||
<span class="o">-----------------------------------------</span>
|
||
<span class="p">[</span><span class="n">B0</span><span class="p">]</span> <span class="p">[</span><span class="n">T0</span><span class="p">]</span> <span class="p">[[</span><span class="n">B1</span><span class="p">]</span> <span class="p">[</span><span class="n">T1</span><span class="p">]</span> <span class="p">[</span><span class="n">D</span><span class="p">]</span> <span class="n">ifte</span><span class="p">]</span> <span class="n">ifte</span>
|
||
</pre></div>
|
||
</div>
|
||
</dd></dl>
|
||
|
||
<dl class="py function">
|
||
<dt class="sig sig-object py" id="joy.library.dip">
|
||
<span class="sig-prename descclassname"><span class="pre">joy.library.</span></span><span class="sig-name descname"><span class="pre">dip</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">stack</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">expression</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">dictionary</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/joy/library.html#dip"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#joy.library.dip" title="Permalink to this definition">¶</a></dt>
|
||
<dd><p>The dip combinator expects a quoted program on the stack and below it
|
||
some item, it hoists the item into the expression and runs the program
|
||
on the rest of the stack.</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span> <span class="o">...</span> <span class="n">x</span> <span class="p">[</span><span class="n">Q</span><span class="p">]</span> <span class="n">dip</span>
|
||
<span class="o">-------------------</span>
|
||
<span class="o">...</span> <span class="n">Q</span> <span class="n">x</span>
|
||
</pre></div>
|
||
</div>
|
||
</dd></dl>
|
||
|
||
<dl class="py function">
|
||
<dt class="sig sig-object py" id="joy.library.dipd">
|
||
<span class="sig-prename descclassname"><span class="pre">joy.library.</span></span><span class="sig-name descname"><span class="pre">dipd</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">S</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">expression</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">dictionary</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/joy/library.html#dipd"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#joy.library.dipd" title="Permalink to this definition">¶</a></dt>
|
||
<dd><p>Like dip but expects two items.</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span> <span class="o">...</span> <span class="n">y</span> <span class="n">x</span> <span class="p">[</span><span class="n">Q</span><span class="p">]</span> <span class="n">dip</span>
|
||
<span class="o">---------------------</span>
|
||
<span class="o">...</span> <span class="n">Q</span> <span class="n">y</span> <span class="n">x</span>
|
||
</pre></div>
|
||
</div>
|
||
</dd></dl>
|
||
|
||
<dl class="py function">
|
||
<dt class="sig sig-object py" id="joy.library.dipdd">
|
||
<span class="sig-prename descclassname"><span class="pre">joy.library.</span></span><span class="sig-name descname"><span class="pre">dipdd</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">S</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">expression</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">dictionary</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/joy/library.html#dipdd"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#joy.library.dipdd" title="Permalink to this definition">¶</a></dt>
|
||
<dd><p>Like dip but expects three items.</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span> <span class="o">...</span> <span class="n">z</span> <span class="n">y</span> <span class="n">x</span> <span class="p">[</span><span class="n">Q</span><span class="p">]</span> <span class="n">dip</span>
|
||
<span class="o">-----------------------</span>
|
||
<span class="o">...</span> <span class="n">Q</span> <span class="n">z</span> <span class="n">y</span> <span class="n">x</span>
|
||
</pre></div>
|
||
</div>
|
||
</dd></dl>
|
||
|
||
<dl class="py function">
|
||
<dt class="sig sig-object py" id="joy.library.disenstacken">
|
||
<span class="sig-prename descclassname"><span class="pre">joy.library.</span></span><span class="sig-name descname"><span class="pre">disenstacken</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">stack</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/joy/library.html#disenstacken"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#joy.library.disenstacken" title="Permalink to this definition">¶</a></dt>
|
||
<dd><p>The disenstacken operator expects a list on top of the stack and makes that
|
||
the stack discarding the rest of the stack.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="py function">
|
||
<dt class="sig sig-object py" id="joy.library.divmod_">
|
||
<span class="sig-prename descclassname"><span class="pre">joy.library.</span></span><span class="sig-name descname"><span class="pre">divmod_</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">S</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/joy/library.html#divmod_"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#joy.library.divmod_" title="Permalink to this definition">¶</a></dt>
|
||
<dd><p>divmod(x, y) -> (quotient, remainder)</p>
|
||
<p>Return the tuple (x//y, x%y). Invariant: q * y + r == x.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="py function">
|
||
<dt class="sig sig-object py" id="joy.library.drop">
|
||
<span class="sig-prename descclassname"><span class="pre">joy.library.</span></span><span class="sig-name descname"><span class="pre">drop</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">stack</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/joy/library.html#drop"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#joy.library.drop" title="Permalink to this definition">¶</a></dt>
|
||
<dd><div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">drop</span> <span class="o">==</span> <span class="p">[</span><span class="n">rest</span><span class="p">]</span> <span class="n">times</span>
|
||
</pre></div>
|
||
</div>
|
||
<p>Expects an integer and a quote on the stack and returns the quote with
|
||
n items removed off the top.</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span> <span class="p">[</span><span class="n">a</span> <span class="n">b</span> <span class="n">c</span> <span class="n">d</span><span class="p">]</span> <span class="mi">2</span> <span class="n">drop</span>
|
||
<span class="o">----------------------</span>
|
||
<span class="p">[</span><span class="n">c</span> <span class="n">d</span><span class="p">]</span>
|
||
</pre></div>
|
||
</div>
|
||
</dd></dl>
|
||
|
||
<dl class="py function">
|
||
<dt class="sig sig-object py" id="joy.library.dupdip">
|
||
<span class="sig-prename descclassname"><span class="pre">joy.library.</span></span><span class="sig-name descname"><span class="pre">dupdip</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">stack</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">expression</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">dictionary</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/joy/library.html#dupdip"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#joy.library.dupdip" title="Permalink to this definition">¶</a></dt>
|
||
<dd><div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="p">[</span><span class="n">F</span><span class="p">]</span> <span class="n">dupdip</span> <span class="o">==</span> <span class="n">dup</span> <span class="p">[</span><span class="n">F</span><span class="p">]</span> <span class="n">dip</span>
|
||
|
||
<span class="o">...</span> <span class="n">a</span> <span class="p">[</span><span class="n">F</span><span class="p">]</span> <span class="n">dupdip</span>
|
||
<span class="o">...</span> <span class="n">a</span> <span class="n">dup</span> <span class="p">[</span><span class="n">F</span><span class="p">]</span> <span class="n">dip</span>
|
||
<span class="o">...</span> <span class="n">a</span> <span class="n">a</span> <span class="p">[</span><span class="n">F</span><span class="p">]</span> <span class="n">dip</span>
|
||
<span class="o">...</span> <span class="n">a</span> <span class="n">F</span> <span class="n">a</span>
|
||
</pre></div>
|
||
</div>
|
||
</dd></dl>
|
||
|
||
<dl class="py function">
|
||
<dt class="sig sig-object py" id="joy.library.floor">
|
||
<span class="sig-prename descclassname"><span class="pre">joy.library.</span></span><span class="sig-name descname"><span class="pre">floor</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">n</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/joy/library.html#floor"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#joy.library.floor" title="Permalink to this definition">¶</a></dt>
|
||
<dd><p>Return the floor of x as an Integral.</p>
|
||
<p>This is the largest integer <= x.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="py function">
|
||
<dt class="sig sig-object py" id="joy.library.gcd2">
|
||
<span class="sig-prename descclassname"><span class="pre">joy.library.</span></span><span class="sig-name descname"><span class="pre">gcd2</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">stack</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">expression</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">dictionary</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/joy/library.html#gcd2"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#joy.library.gcd2" title="Permalink to this definition">¶</a></dt>
|
||
<dd><p>Compiled GCD function.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="py function">
|
||
<dt class="sig sig-object py" id="joy.library.genrec">
|
||
<span class="sig-prename descclassname"><span class="pre">joy.library.</span></span><span class="sig-name descname"><span class="pre">genrec</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">stack</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">expression</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">dictionary</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/joy/library.html#genrec"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#joy.library.genrec" title="Permalink to this definition">¶</a></dt>
|
||
<dd><p>General Recursion Combinator.</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span> <span class="p">[</span><span class="k">if</span><span class="p">]</span> <span class="p">[</span><span class="n">then</span><span class="p">]</span> <span class="p">[</span><span class="n">rec1</span><span class="p">]</span> <span class="p">[</span><span class="n">rec2</span><span class="p">]</span> <span class="n">genrec</span>
|
||
<span class="o">---------------------------------------------------------------------</span>
|
||
<span class="p">[</span><span class="k">if</span><span class="p">]</span> <span class="p">[</span><span class="n">then</span><span class="p">]</span> <span class="p">[</span><span class="n">rec1</span> <span class="p">[[</span><span class="k">if</span><span class="p">]</span> <span class="p">[</span><span class="n">then</span><span class="p">]</span> <span class="p">[</span><span class="n">rec1</span><span class="p">]</span> <span class="p">[</span><span class="n">rec2</span><span class="p">]</span> <span class="n">genrec</span><span class="p">]</span> <span class="n">rec2</span><span class="p">]</span> <span class="n">ifte</span>
|
||
</pre></div>
|
||
</div>
|
||
<p>From “Recursion Theory and Joy” (j05cmp.html) by Manfred von Thun:
|
||
“The genrec combinator takes four program parameters in addition to
|
||
whatever data parameters it needs. Fourth from the top is an if-part,
|
||
followed by a then-part. If the if-part yields true, then the then-part
|
||
is executed and the combinator terminates. The other two parameters are
|
||
the rec1-part and the rec2-part. If the if-part yields false, the
|
||
rec1-part is executed. Following that the four program parameters and
|
||
the combinator are again pushed onto the stack bundled up in a quoted
|
||
form. Then the rec2-part is executed, where it will find the bundled
|
||
form. Typically it will then execute the bundled form, either with i or
|
||
with app2, or some other combinator.”</p>
|
||
<p>The way to design one of these is to fix your base case [then] and the
|
||
test [if], and then treat rec1 and rec2 as an else-part “sandwiching”
|
||
a quotation of the whole function.</p>
|
||
<p>For example, given a (general recursive) function ‘F’:</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">F</span> <span class="o">==</span> <span class="p">[</span><span class="n">I</span><span class="p">]</span> <span class="p">[</span><span class="n">T</span><span class="p">]</span> <span class="p">[</span><span class="n">R1</span><span class="p">]</span> <span class="p">[</span><span class="n">R2</span><span class="p">]</span> <span class="n">genrec</span>
|
||
</pre></div>
|
||
</div>
|
||
<p>If the [I] if-part fails you must derive R1 and R2 from:</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="o">...</span> <span class="n">R1</span> <span class="p">[</span><span class="n">F</span><span class="p">]</span> <span class="n">R2</span>
|
||
</pre></div>
|
||
</div>
|
||
<p>Just set the stack arguments in front, and figure out what R1 and R2
|
||
have to do to apply the quoted [F] in the proper way. In effect, the
|
||
genrec combinator turns into an ifte combinator with a quoted copy of
|
||
the original definition in the else-part:</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">F</span> <span class="o">==</span> <span class="p">[</span><span class="n">I</span><span class="p">]</span> <span class="p">[</span><span class="n">T</span><span class="p">]</span> <span class="p">[</span><span class="n">R1</span><span class="p">]</span> <span class="p">[</span><span class="n">R2</span><span class="p">]</span> <span class="n">genrec</span>
|
||
<span class="o">==</span> <span class="p">[</span><span class="n">I</span><span class="p">]</span> <span class="p">[</span><span class="n">T</span><span class="p">]</span> <span class="p">[</span><span class="n">R1</span> <span class="p">[</span><span class="n">F</span><span class="p">]</span> <span class="n">R2</span><span class="p">]</span> <span class="n">ifte</span>
|
||
</pre></div>
|
||
</div>
|
||
<p>Primitive recursive functions are those where R2 == i.</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">P</span> <span class="o">==</span> <span class="p">[</span><span class="n">I</span><span class="p">]</span> <span class="p">[</span><span class="n">T</span><span class="p">]</span> <span class="p">[</span><span class="n">R</span><span class="p">]</span> <span class="n">tailrec</span>
|
||
<span class="o">==</span> <span class="p">[</span><span class="n">I</span><span class="p">]</span> <span class="p">[</span><span class="n">T</span><span class="p">]</span> <span class="p">[</span><span class="n">R</span> <span class="p">[</span><span class="n">P</span><span class="p">]</span> <span class="n">i</span><span class="p">]</span> <span class="n">ifte</span>
|
||
<span class="o">==</span> <span class="p">[</span><span class="n">I</span><span class="p">]</span> <span class="p">[</span><span class="n">T</span><span class="p">]</span> <span class="p">[</span><span class="n">R</span> <span class="n">P</span><span class="p">]</span> <span class="n">ifte</span>
|
||
</pre></div>
|
||
</div>
|
||
</dd></dl>
|
||
|
||
<dl class="py function">
|
||
<dt class="sig sig-object py" id="joy.library.getitem">
|
||
<span class="sig-prename descclassname"><span class="pre">joy.library.</span></span><span class="sig-name descname"><span class="pre">getitem</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">stack</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/joy/library.html#getitem"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#joy.library.getitem" title="Permalink to this definition">¶</a></dt>
|
||
<dd><div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">getitem</span> <span class="o">==</span> <span class="n">drop</span> <span class="n">first</span>
|
||
</pre></div>
|
||
</div>
|
||
<p>Expects an integer and a quote on the stack and returns the item at the
|
||
nth position in the quote counting from 0.</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span> <span class="p">[</span><span class="n">a</span> <span class="n">b</span> <span class="n">c</span> <span class="n">d</span><span class="p">]</span> <span class="mi">0</span> <span class="n">getitem</span>
|
||
<span class="o">-------------------------</span>
|
||
<span class="n">a</span>
|
||
</pre></div>
|
||
</div>
|
||
</dd></dl>
|
||
|
||
<dl class="py function">
|
||
<dt class="sig sig-object py" id="joy.library.help_">
|
||
<span class="sig-prename descclassname"><span class="pre">joy.library.</span></span><span class="sig-name descname"><span class="pre">help_</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">S</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">expression</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">dictionary</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/joy/library.html#help_"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#joy.library.help_" title="Permalink to this definition">¶</a></dt>
|
||
<dd><p>Accepts a quoted symbol on the top of the stack and prints its docs.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="py function">
|
||
<dt class="sig sig-object py" id="joy.library.i">
|
||
<span class="sig-prename descclassname"><span class="pre">joy.library.</span></span><span class="sig-name descname"><span class="pre">i</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">stack</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">expression</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">dictionary</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/joy/library.html#i"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#joy.library.i" title="Permalink to this definition">¶</a></dt>
|
||
<dd><p>The i combinator expects a quoted program on the stack and unpacks it
|
||
onto the pending expression for evaluation.</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span> <span class="p">[</span><span class="n">Q</span><span class="p">]</span> <span class="n">i</span>
|
||
<span class="o">-----------</span>
|
||
<span class="n">Q</span>
|
||
</pre></div>
|
||
</div>
|
||
</dd></dl>
|
||
|
||
<dl class="py function">
|
||
<dt class="sig sig-object py" id="joy.library.id_">
|
||
<span class="sig-prename descclassname"><span class="pre">joy.library.</span></span><span class="sig-name descname"><span class="pre">id_</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">stack</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/joy/library.html#id_"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#joy.library.id_" title="Permalink to this definition">¶</a></dt>
|
||
<dd><p>The identity function.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="py function">
|
||
<dt class="sig sig-object py" id="joy.library.ifte">
|
||
<span class="sig-prename descclassname"><span class="pre">joy.library.</span></span><span class="sig-name descname"><span class="pre">ifte</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">stack</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">expression</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">dictionary</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/joy/library.html#ifte"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#joy.library.ifte" title="Permalink to this definition">¶</a></dt>
|
||
<dd><p>If-Then-Else Combinator</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span> <span class="o">...</span> <span class="p">[</span><span class="k">if</span><span class="p">]</span> <span class="p">[</span><span class="n">then</span><span class="p">]</span> <span class="p">[</span><span class="k">else</span><span class="p">]</span> <span class="n">ifte</span>
|
||
<span class="o">---------------------------------------------------</span>
|
||
<span class="o">...</span> <span class="p">[[</span><span class="k">else</span><span class="p">]</span> <span class="p">[</span><span class="n">then</span><span class="p">]]</span> <span class="p">[</span><span class="o">...</span><span class="p">]</span> <span class="p">[</span><span class="k">if</span><span class="p">]</span> <span class="n">infra</span> <span class="n">select</span> <span class="n">i</span>
|
||
|
||
|
||
|
||
|
||
<span class="o">...</span> <span class="p">[</span><span class="k">if</span><span class="p">]</span> <span class="p">[</span><span class="n">then</span><span class="p">]</span> <span class="p">[</span><span class="k">else</span><span class="p">]</span> <span class="n">ifte</span>
|
||
<span class="o">-------------------------------------------------------</span>
|
||
<span class="o">...</span> <span class="p">[</span><span class="k">else</span><span class="p">]</span> <span class="p">[</span><span class="n">then</span><span class="p">]</span> <span class="p">[</span><span class="o">...</span><span class="p">]</span> <span class="p">[</span><span class="k">if</span><span class="p">]</span> <span class="n">infra</span> <span class="n">first</span> <span class="n">choice</span> <span class="n">i</span>
|
||
</pre></div>
|
||
</div>
|
||
<p>Has the effect of grabbing a copy of the stack on which to run the
|
||
if-part using infra.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="py function">
|
||
<dt class="sig sig-object py" id="joy.library.ii">
|
||
<span class="sig-prename descclassname"><span class="pre">joy.library.</span></span><span class="sig-name descname"><span class="pre">ii</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">stack</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">expression</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">dictionary</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/joy/library.html#ii"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#joy.library.ii" title="Permalink to this definition">¶</a></dt>
|
||
<dd><div class="highlight-default notranslate"><div class="highlight"><pre><span></span> <span class="o">...</span> <span class="n">a</span> <span class="p">[</span><span class="n">Q</span><span class="p">]</span> <span class="n">ii</span>
|
||
<span class="o">------------------</span>
|
||
<span class="o">...</span> <span class="n">Q</span> <span class="n">a</span> <span class="n">Q</span>
|
||
</pre></div>
|
||
</div>
|
||
</dd></dl>
|
||
|
||
<dl class="py function">
|
||
<dt class="sig sig-object py" id="joy.library.infra">
|
||
<span class="sig-prename descclassname"><span class="pre">joy.library.</span></span><span class="sig-name descname"><span class="pre">infra</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">stack</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">expression</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">dictionary</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/joy/library.html#infra"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#joy.library.infra" title="Permalink to this definition">¶</a></dt>
|
||
<dd><p>Accept a quoted program and a list on the stack and run the program
|
||
with the list as its stack. Does not affect the rest of the stack.</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span> <span class="o">...</span> <span class="p">[</span><span class="n">a</span> <span class="n">b</span> <span class="n">c</span><span class="p">]</span> <span class="p">[</span><span class="n">Q</span><span class="p">]</span> <span class="o">.</span> <span class="n">infra</span>
|
||
<span class="o">-----------------------------</span>
|
||
<span class="n">c</span> <span class="n">b</span> <span class="n">a</span> <span class="o">.</span> <span class="n">Q</span> <span class="p">[</span><span class="o">...</span><span class="p">]</span> <span class="n">swaack</span>
|
||
</pre></div>
|
||
</div>
|
||
</dd></dl>
|
||
|
||
<dl class="py function">
|
||
<dt class="sig sig-object py" id="joy.library.initialize">
|
||
<span class="sig-prename descclassname"><span class="pre">joy.library.</span></span><span class="sig-name descname"><span class="pre">initialize</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="_modules/joy/library.html#initialize"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#joy.library.initialize" title="Permalink to this definition">¶</a></dt>
|
||
<dd><p>Return a dictionary of Joy functions for use with joy().</p>
|
||
</dd></dl>
|
||
|
||
<dl class="py function">
|
||
<dt class="sig sig-object py" id="joy.library.inscribe">
|
||
<span class="sig-prename descclassname"><span class="pre">joy.library.</span></span><span class="sig-name descname"><span class="pre">inscribe</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">function</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">d={'!=':</span> <span class="pre"><function</span> <span class="pre">ne></span></span></em>, <em class="sig-param"><span class="n"><span class="pre">'%':</span> <span class="pre"><function</span> <span class="pre">mod></span></span></em>, <em class="sig-param"><span class="n"><span class="pre">'&':</span> <span class="pre"><function</span> <span class="pre">and_></span></span></em>, <em class="sig-param"><span class="n"><span class="pre">'*':</span> <span class="pre"><function</span> <span class="pre">mul></span></span></em>, <em class="sig-param"><span class="n"><span class="pre">'+':</span> <span class="pre"><function</span> <span class="pre">add></span></span></em>, <em class="sig-param"><span class="n"><span class="pre">'++':</span> <span class="pre"><function</span> <span class="pre">succ></span></span></em>, <em class="sig-param"><span class="n"><span class="pre">'-':</span> <span class="pre"><function</span> <span class="pre">sub></span></span></em>, <em class="sig-param"><span class="n"><span class="pre">'--':</span> <span class="pre"><function</span> <span class="pre">pred></span></span></em>, <em class="sig-param"><span class="n"><span class="pre">'/':</span> <span class="pre"><function</span> <span class="pre">floordiv></span></span></em>, <em class="sig-param"><span class="n"><span class="pre">'//':</span> <span class="pre"><function</span> <span class="pre">floordiv></span></span></em>, <em class="sig-param"><span class="n"><span class="pre">'/floor':</span> <span class="pre"><function</span> <span class="pre">floordiv></span></span></em>, <em class="sig-param"><span class="n"><span class="pre">'<':</span> <span class="pre"><function</span> <span class="pre">lt></span></span></em>, <em class="sig-param"><span class="n"><span class="pre">'<<':</span> <span class="pre"><function</span> <span class="pre">lshift></span></span></em>, <em class="sig-param"><span class="n"><span class="pre">'<=':</span> <span class="pre"><function</span> <span class="pre">le></span></span></em>, <em class="sig-param"><span class="n"><span class="pre">'<>':</span> <span class="pre"><function</span> <span class="pre">ne></span></span></em>, <em class="sig-param"><span class="n"><span class="pre">'=':</span> <span class="pre"><function</span> <span class="pre">eq></span></span></em>, <em class="sig-param"><span class="n"><span class="pre">'>':</span> <span class="pre"><function</span> <span class="pre">gt></span></span></em>, <em class="sig-param"><span class="n"><span class="pre">'>=':</span> <span class="pre"><function</span> <span class="pre">ge></span></span></em>, <em class="sig-param"><span class="n"><span class="pre">'>>':</span> <span class="pre"><function</span> <span class="pre">rshift></span></span></em>, <em class="sig-param"><span class="n"><span class="pre">'^':</span> <span class="pre"><function</span> <span class="pre">xor></span></span></em>, <em class="sig-param"><span class="n"><span class="pre">'_Tree_add_Ee':</span> <span class="pre"><function</span> <span class="pre">_Tree_add_Ee></span></span></em>, <em class="sig-param"><span class="n"><span class="pre">'_Tree_delete_R0':</span> <span class="pre"><function</span> <span class="pre">_Tree_delete_R0></span></span></em>, <em class="sig-param"><span class="n"><span class="pre">'_Tree_delete_clear_stuff':</span> <span class="pre"><function</span> <span class="pre">_Tree_delete_clear_stuff></span></span></em>, <em class="sig-param"><span class="n"><span class="pre">'_Tree_get_E':</span> <span class="pre"><function</span> <span class="pre">_Tree_get_E></span></span></em>, <em class="sig-param"><span class="n"><span class="pre">'abs':</span> <span class="pre"><function</span> <span class="pre">abs></span></span></em>, <em class="sig-param"><span class="n"><span class="pre">'add':</span> <span class="pre"><function</span> <span class="pre">add></span></span></em>, <em class="sig-param"><span class="n"><span class="pre">'and':</span> <span class="pre"><function</span> <span class="pre">and_></span></span></em>, <em class="sig-param"><span class="n"><span class="pre">'app1':</span> <span class="pre"><function</span> <span class="pre">app1></span></span></em>, <em class="sig-param"><span class="n"><span class="pre">'app2':</span> <span class="pre"><function</span> <span class="pre">app2></span></span></em>, <em class="sig-param"><span class="n"><span class="pre">'app3':</span> <span class="pre"><function</span> <span class="pre">app3></span></span></em>, <em class="sig-param"><span class="n"><span class="pre">'at':</span> <span class="pre"><function</span> <span class="pre">getitem></span></span></em>, <em class="sig-param"><span class="n"><span class="pre">'b':</span> <span class="pre"><function</span> <span class="pre">b></span></span></em>, <em class="sig-param"><span class="n"><span class="pre">'bool':</span> <span class="pre"><function</span> <span class="pre">bool></span></span></em>, <em class="sig-param"><span class="n"><span class="pre">'branch':</span> <span class="pre"><function</span> <span class="pre">branch></span></span></em>, <em class="sig-param"><span class="n"><span class="pre">'ccons':</span> <span class="pre"><function</span> <span class="pre">ccons></span></span></em>, <em class="sig-param"><span class="n"><span class="pre">'choice':</span> <span class="pre"><function</span> <span class="pre">choice></span></span></em>, <em class="sig-param"><span class="n"><span class="pre">'clear':</span> <span class="pre"><function</span> <span class="pre">clear></span></span></em>, <em class="sig-param"><span class="n"><span class="pre">'cmp':</span> <span class="pre"><function</span> <span class="pre">cmp_></span></span></em>, <em class="sig-param"><span class="n"><span class="pre">'concat':</span> <span class="pre"><function</span> <span class="pre">concat_></span></span></em>, <em class="sig-param"><span class="n"><span class="pre">'cond':</span> <span class="pre"><function</span> <span class="pre">cond></span></span></em>, <em class="sig-param"><span class="n"><span class="pre">'cons':</span> <span class="pre"><function</span> <span class="pre">cons></span></span></em>, <em class="sig-param"><span class="n"><span class="pre">'dip':</span> <span class="pre"><function</span> <span class="pre">dip></span></span></em>, <em class="sig-param"><span class="n"><span class="pre">'dipd':</span> <span class="pre"><function</span> <span class="pre">dipd></span></span></em>, <em class="sig-param"><span class="n"><span class="pre">'dipdd':</span> <span class="pre"><function</span> <span class="pre">dipdd></span></span></em>, <em class="sig-param"><span class="n"><span class="pre">'disenstacken':</span> <span class="pre"><function</span> <span class="pre">disenstacken></span></span></em>, <em class="sig-param"><span class="n"><span class="pre">'div':</span> <span class="pre"><function</span> <span class="pre">floordiv></span></span></em>, <em class="sig-param"><span class="n"><span class="pre">'divmod':</span> <span class="pre"><function</span> <span class="pre">divmod_></span></span></em>, <em class="sig-param"><span class="n"><span class="pre">'drop':</span> <span class="pre"><function</span> <span class="pre">drop></span></span></em>, <em class="sig-param"><span class="n"><span class="pre">'dup':</span> <span class="pre"><function</span> <span class="pre">dup></span></span></em>, <em class="sig-param"><span class="n"><span class="pre">'dupd':</span> <span class="pre"><function</span> <span class="pre">dupd></span></span></em>, <em class="sig-param"><span class="n"><span class="pre">'dupdd':</span> <span class="pre"><function</span> <span class="pre">dupdd></span></span></em>, <em class="sig-param"><span class="n"><span class="pre">'dupdip':</span> <span class="pre"><function</span> <span class="pre">dupdip></span></span></em>, <em class="sig-param"><span class="n"><span class="pre">'eq':</span> <span class="pre"><function</span> <span class="pre">eq></span></span></em>, <em class="sig-param"><span class="n"><span class="pre">'first':</span> <span class="pre"><function</span> <span class="pre">first></span></span></em>, <em class="sig-param"><span class="n"><span class="pre">'first_two':</span> <span class="pre"><function</span> <span class="pre">first_two></span></span></em>, <em class="sig-param"><span class="n"><span class="pre">'floor':</span> <span class="pre"><function</span> <span class="pre">floor></span></span></em>, <em class="sig-param"><span class="n"><span class="pre">'floordiv':</span> <span class="pre"><function</span> <span class="pre">floordiv></span></span></em>, <em class="sig-param"><span class="n"><span class="pre">'fourth':</span> <span class="pre"><function</span> <span class="pre">fourth></span></span></em>, <em class="sig-param"><span class="n"><span class="pre">'gcd2':</span> <span class="pre"><function</span> <span class="pre">gcd2></span></span></em>, <em class="sig-param"><span class="n"><span class="pre">'ge':</span> <span class="pre"><function</span> <span class="pre">ge></span></span></em>, <em class="sig-param"><span class="n"><span class="pre">'genrec':</span> <span class="pre"><function</span> <span class="pre">genrec></span></span></em>, <em class="sig-param"><span class="n"><span class="pre">'getitem':</span> <span class="pre"><function</span> <span class="pre">getitem></span></span></em>, <em class="sig-param"><span class="n"><span class="pre">'gt':</span> <span class="pre"><function</span> <span class="pre">gt></span></span></em>, <em class="sig-param"><span class="n"><span class="pre">'help':</span> <span class="pre"><function</span> <span class="pre">help_></span></span></em>, <em class="sig-param"><span class="n"><span class="pre">'i':</span> <span class="pre"><function</span> <span class="pre">i></span></span></em>, <em class="sig-param"><span class="n"><span class="pre">'id':</span> <span class="pre"><function</span> <span class="pre">id_></span></span></em>, <em class="sig-param"><span class="n"><span class="pre">'ifte':</span> <span class="pre"><function</span> <span class="pre">ifte></span></span></em>, <em class="sig-param"><span class="n"><span class="pre">'ii':</span> <span class="pre"><function</span> <span class="pre">ii></span></span></em>, <em class="sig-param"><span class="n"><span class="pre">'infra':</span> <span class="pre"><function</span> <span class="pre">infra></span></span></em>, <em class="sig-param"><span class="n"><span class="pre">'inscribe':</span> <span class="pre"><function</span> <span class="pre">inscribe_></span></span></em>, <em class="sig-param"><span class="n"><span class="pre">'le':</span> <span class="pre"><function</span> <span class="pre">le></span></span></em>, <em class="sig-param"><span class="n"><span class="pre">'loop':</span> <span class="pre"><function</span> <span class="pre">loop></span></span></em>, <em class="sig-param"><span class="n"><span class="pre">'lshift':</span> <span class="pre"><function</span> <span class="pre">lshift></span></span></em>, <em class="sig-param"><span class="n"><span class="pre">'lt':</span> <span class="pre"><function</span> <span class="pre">lt></span></span></em>, <em class="sig-param"><span class="n"><span class="pre">'map':</span> <span class="pre"><function</span> <span class="pre">map_></span></span></em>, <em class="sig-param"><span class="n"><span class="pre">'max':</span> <span class="pre"><function</span> <span class="pre">max_></span></span></em>, <em class="sig-param"><span class="n"><span class="pre">'min':</span> <span class="pre"><function</span> <span class="pre">min_></span></span></em>, <em class="sig-param"><span class="n"><span class="pre">'mod':</span> <span class="pre"><function</span> <span class="pre">mod></span></span></em>, <em class="sig-param"><span class="n"><span class="pre">'modulus':</span> <span class="pre"><function</span> <span class="pre">mod></span></span></em>, <em class="sig-param"><span class="n"><span class="pre">'mul':</span> <span class="pre"><function</span> <span class="pre">mul></span></span></em>, <em class="sig-param"><span class="n"><span class="pre">'ne':</span> <span class="pre"><function</span> <span class="pre">ne></span></span></em>, <em class="sig-param"><span class="n"><span class="pre">'neg':</span> <span class="pre"><function</span> <span class="pre">neg></span></span></em>, <em class="sig-param"><span class="n"><span class="pre">'not':</span> <span class="pre"><function</span> <span class="pre">not_></span></span></em>, <em class="sig-param"><span class="n"><span class="pre">'or':</span> <span class="pre"><function</span> <span class="pre">or_></span></span></em>, <em class="sig-param"><span class="n"><span class="pre">'over':</span> <span class="pre"><function</span> <span class="pre">over></span></span></em>, <em class="sig-param"><span class="n"><span class="pre">'pick':</span> <span class="pre"><function</span> <span class="pre">getitem></span></span></em>, <em class="sig-param"><span class="n"><span class="pre">'pm':</span> <span class="pre"><function</span> <span class="pre">pm></span></span></em>, <em class="sig-param"><span class="n"><span class="pre">'pop':</span> <span class="pre"><function</span> <span class="pre">pop></span></span></em>, <em class="sig-param"><span class="n"><span class="pre">'popd':</span> <span class="pre"><function</span> <span class="pre">popd></span></span></em>, <em class="sig-param"><span class="n"><span class="pre">'popdd':</span> <span class="pre"><function</span> <span class="pre">popdd></span></span></em>, <em class="sig-param"><span class="n"><span class="pre">'popop':</span> <span class="pre"><function</span> <span class="pre">popop></span></span></em>, <em class="sig-param"><span class="n"><span class="pre">'popopd':</span> <span class="pre"><function</span> <span class="pre">popopd></span></span></em>, <em class="sig-param"><span class="n"><span class="pre">'popopdd':</span> <span class="pre"><function</span> <span class="pre">popopdd></span></span></em>, <em class="sig-param"><span class="n"><span class="pre">'pow':</span> <span class="pre"><function</span> <span class="pre">pow></span></span></em>, <em class="sig-param"><span class="n"><span class="pre">'pred':</span> <span class="pre"><function</span> <span class="pre">pred></span></span></em>, <em class="sig-param"><span class="n"><span class="pre">'primrec':</span> <span class="pre"><function</span> <span class="pre">primrec></span></span></em>, <em class="sig-param"><span class="n"><span class="pre">'rem':</span> <span class="pre"><function</span> <span class="pre">mod></span></span></em>, <em class="sig-param"><span class="n"><span class="pre">'remainder':</span> <span class="pre"><function</span> <span class="pre">mod></span></span></em>, <em class="sig-param"><span class="n"><span class="pre">'remove':</span> <span class="pre"><function</span> <span class="pre">remove></span></span></em>, <em class="sig-param"><span class="n"><span class="pre">'rest':</span> <span class="pre"><function</span> <span class="pre">rest></span></span></em>, <em class="sig-param"><span class="n"><span class="pre">'reverse':</span> <span class="pre"><function</span> <span class="pre">reverse></span></span></em>, <em class="sig-param"><span class="n"><span class="pre">'roll<':</span> <span class="pre"><function</span> <span class="pre">rolldown></span></span></em>, <em class="sig-param"><span class="n"><span class="pre">'roll>':</span> <span class="pre"><function</span> <span class="pre">rollup></span></span></em>, <em class="sig-param"><span class="n"><span class="pre">'rolldown':</span> <span class="pre"><function</span> <span class="pre">rolldown></span></span></em>, <em class="sig-param"><span class="n"><span class="pre">'rollup':</span> <span class="pre"><function</span> <span class="pre">rollup></span></span></em>, <em class="sig-param"><span class="n"><span class="pre">'round':</span> <span class="pre"><function</span> <span class="pre">round></span></span></em>, <em class="sig-param"><span class="n"><span class="pre">'rrest':</span> <span class="pre"><function</span> <span class="pre">rrest></span></span></em>, <em class="sig-param"><span class="n"><span class="pre">'rshift':</span> <span class="pre"><function</span> <span class="pre">rshift></span></span></em>, <em class="sig-param"><span class="n"><span class="pre">'second':</span> <span class="pre"><function</span> <span class="pre">second></span></span></em>, <em class="sig-param"><span class="n"><span class="pre">'select':</span> <span class="pre"><function</span> <span class="pre">select></span></span></em>, <em class="sig-param"><span class="n"><span class="pre">'sharing':</span> <span class="pre"><function</span> <span class="pre">sharing></span></span></em>, <em class="sig-param"><span class="n"><span class="pre">'shunt':</span> <span class="pre"><function</span> <span class="pre">shunt></span></span></em>, <em class="sig-param"><span class="n"><span class="pre">'sort':</span> <span class="pre"><function</span> <span class="pre">sort_></span></span></em>, <em class="sig-param"><span class="n"><span class="pre">'sqrt':</span> <span class="pre"><function</span> <span class="pre">sqrt></span></span></em>, <em class="sig-param"><span class="n"><span class="pre">'stack':</span> <span class="pre"><function</span> <span class="pre">stack></span></span></em>, <em class="sig-param"><span class="n"><span class="pre">'step':</span> <span class="pre"><function</span> <span class="pre">step></span></span></em>, <em class="sig-param"><span class="n"><span class="pre">'stuncons':</span> <span class="pre"><function</span> <span class="pre">stuncons></span></span></em>, <em class="sig-param"><span class="n"><span class="pre">'stununcons':</span> <span class="pre"><function</span> <span class="pre">stununcons></span></span></em>, <em class="sig-param"><span class="n"><span class="pre">'sub':</span> <span class="pre"><function</span> <span class="pre">sub></span></span></em>, <em class="sig-param"><span class="n"><span class="pre">'succ':</span> <span class="pre"><function</span> <span class="pre">succ></span></span></em>, <em class="sig-param"><span class="n"><span class="pre">'sum':</span> <span class="pre"><function</span> <span class="pre">sum_></span></span></em>, <em class="sig-param"><span class="n"><span class="pre">'swaack':</span> <span class="pre"><function</span> <span class="pre">swaack></span></span></em>, <em class="sig-param"><span class="n"><span class="pre">'swap':</span> <span class="pre"><function</span> <span class="pre">swap></span></span></em>, <em class="sig-param"><span class="n"><span class="pre">'swons':</span> <span class="pre"><function</span> <span class="pre">swons></span></span></em>, <em class="sig-param"><span class="n"><span class="pre">'take':</span> <span class="pre"><function</span> <span class="pre">take></span></span></em>, <em class="sig-param"><span class="n"><span class="pre">'third':</span> <span class="pre"><function</span> <span class="pre">third></span></span></em>, <em class="sig-param"><span class="n"><span class="pre">'times':</span> <span class="pre"><function</span> <span class="pre">times></span></span></em>, <em class="sig-param"><span class="n"><span class="pre">'truthy':</span> <span class="pre"><function</span> <span class="pre">bool></span></span></em>, <em class="sig-param"><span class="n"><span class="pre">'tuck':</span> <span class="pre"><function</span> <span class="pre">tuck></span></span></em>, <em class="sig-param"><span class="n"><span class="pre">'uncons':</span> <span class="pre"><function</span> <span class="pre">uncons></span></span></em>, <em class="sig-param"><span class="n"><span class="pre">'unique':</span> <span class="pre"><function</span> <span class="pre">unique></span></span></em>, <em class="sig-param"><span class="n"><span class="pre">'unit':</span> <span class="pre"><function</span> <span class="pre">unit></span></span></em>, <em class="sig-param"><span class="n"><span class="pre">'unswons':</span> <span class="pre"><function</span> <span class="pre">unswons></span></span></em>, <em class="sig-param"><span class="n"><span class="pre">'void':</span> <span class="pre"><function</span> <span class="pre">void></span></span></em>, <em class="sig-param"><span class="n"><span class="pre">'warranty':</span> <span class="pre"><function</span> <span class="pre">warranty></span></span></em>, <em class="sig-param"><span class="n"><span class="pre">'words':</span> <span class="pre"><function</span> <span class="pre">words></span></span></em>, <em class="sig-param"><span class="n"><span class="pre">'x':</span> <span class="pre"><function</span> <span class="pre">x></span></span></em>, <em class="sig-param"><span class="n"><span class="pre">'xor':</span> <span class="pre"><function</span> <span class="pre">xor></span></span></em>, <em class="sig-param"><span class="n"><span class="pre">'zip':</span> <span class="pre"><function</span> <span class="pre">zip_></span></span></em>, <em class="sig-param"><span class="n"><span class="pre">'•':</span> <span class="pre"><function</span> <span class="pre">id_>}</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/joy/library.html#inscribe"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#joy.library.inscribe" title="Permalink to this definition">¶</a></dt>
|
||
<dd><p>A decorator to inscribe functions into the default dictionary.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="py function">
|
||
<dt class="sig sig-object py" id="joy.library.inscribe_">
|
||
<span class="sig-prename descclassname"><span class="pre">joy.library.</span></span><span class="sig-name descname"><span class="pre">inscribe_</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">stack</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">expression</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">dictionary</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/joy/library.html#inscribe_"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#joy.library.inscribe_" title="Permalink to this definition">¶</a></dt>
|
||
<dd><p>Create a new Joy function definition in the Joy dictionary. A
|
||
definition is given as a quote with a name followed by a Joy
|
||
expression. for example:</p>
|
||
<blockquote>
|
||
<div><p>[sqr dup mul] inscribe</p>
|
||
</div></blockquote>
|
||
</dd></dl>
|
||
|
||
<dl class="py function">
|
||
<dt class="sig sig-object py" id="joy.library.loop">
|
||
<span class="sig-prename descclassname"><span class="pre">joy.library.</span></span><span class="sig-name descname"><span class="pre">loop</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">stack</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">expression</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">dictionary</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/joy/library.html#loop"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#joy.library.loop" title="Permalink to this definition">¶</a></dt>
|
||
<dd><p>Basic loop combinator.</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span> <span class="o">...</span> <span class="kc">True</span> <span class="p">[</span><span class="n">Q</span><span class="p">]</span> <span class="n">loop</span>
|
||
<span class="o">-----------------------</span>
|
||
<span class="o">...</span> <span class="n">Q</span> <span class="p">[</span><span class="n">Q</span><span class="p">]</span> <span class="n">loop</span>
|
||
|
||
<span class="o">...</span> <span class="kc">False</span> <span class="p">[</span><span class="n">Q</span><span class="p">]</span> <span class="n">loop</span>
|
||
<span class="o">------------------------</span>
|
||
<span class="o">...</span>
|
||
</pre></div>
|
||
</div>
|
||
</dd></dl>
|
||
|
||
<dl class="py function">
|
||
<dt class="sig sig-object py" id="joy.library.map_">
|
||
<span class="sig-prename descclassname"><span class="pre">joy.library.</span></span><span class="sig-name descname"><span class="pre">map_</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">S</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">expression</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">dictionary</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/joy/library.html#map_"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#joy.library.map_" title="Permalink to this definition">¶</a></dt>
|
||
<dd><p>Run the quoted program on TOS on the items in the list under it, push a
|
||
new list with the results in place of the program and original list.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="py function">
|
||
<dt class="sig sig-object py" id="joy.library.max_">
|
||
<span class="sig-prename descclassname"><span class="pre">joy.library.</span></span><span class="sig-name descname"><span class="pre">max_</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">S</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/joy/library.html#max_"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#joy.library.max_" title="Permalink to this definition">¶</a></dt>
|
||
<dd><p>Given a list find the maximum.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="py function">
|
||
<dt class="sig sig-object py" id="joy.library.min_">
|
||
<span class="sig-prename descclassname"><span class="pre">joy.library.</span></span><span class="sig-name descname"><span class="pre">min_</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">S</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/joy/library.html#min_"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#joy.library.min_" title="Permalink to this definition">¶</a></dt>
|
||
<dd><p>Given a list find the minimum.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="py function">
|
||
<dt class="sig sig-object py" id="joy.library.pm">
|
||
<span class="sig-prename descclassname"><span class="pre">joy.library.</span></span><span class="sig-name descname"><span class="pre">pm</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">stack</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/joy/library.html#pm"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#joy.library.pm" title="Permalink to this definition">¶</a></dt>
|
||
<dd><p>Plus or minus</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span> <span class="n">a</span> <span class="n">b</span> <span class="n">pm</span>
|
||
<span class="o">-------------</span>
|
||
<span class="n">a</span><span class="o">+</span><span class="n">b</span> <span class="n">a</span><span class="o">-</span><span class="n">b</span>
|
||
</pre></div>
|
||
</div>
|
||
</dd></dl>
|
||
|
||
<dl class="py function">
|
||
<dt class="sig sig-object py" id="joy.library.pred">
|
||
<span class="sig-prename descclassname"><span class="pre">joy.library.</span></span><span class="sig-name descname"><span class="pre">pred</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">S</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/joy/library.html#pred"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#joy.library.pred" title="Permalink to this definition">¶</a></dt>
|
||
<dd><p>Decrement TOS.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="py function">
|
||
<dt class="sig sig-object py" id="joy.library.primrec">
|
||
<span class="sig-prename descclassname"><span class="pre">joy.library.</span></span><span class="sig-name descname"><span class="pre">primrec</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">stack</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">expression</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">dictionary</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/joy/library.html#primrec"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#joy.library.primrec" title="Permalink to this definition">¶</a></dt>
|
||
<dd><p>From the “Overview of the language JOY”:</p>
|
||
<p>> The primrec combinator expects two quoted programs in addition to a
|
||
data parameter. For an integer data parameter it works like this: If
|
||
the data parameter is zero, then the first quotation has to produce
|
||
the value to be returned. If the data parameter is positive then the
|
||
second has to combine the data parameter with the result of applying
|
||
the function to its predecessor.:</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="mi">5</span> <span class="p">[</span><span class="mi">1</span><span class="p">]</span> <span class="p">[</span><span class="o">*</span><span class="p">]</span> <span class="n">primrec</span>
|
||
</pre></div>
|
||
</div>
|
||
<p>> Then primrec tests whether the top element on the stack (initially
|
||
the 5) is equal to zero. If it is, it pops it off and executes one of
|
||
the quotations, the [1] which leaves 1 on the stack as the result.
|
||
Otherwise it pushes a decremented copy of the top element and
|
||
recurses. On the way back from the recursion it uses the other
|
||
quotation, [*], to multiply what is now a factorial on top of the
|
||
stack by the second element on the stack.:</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">n</span> <span class="p">[</span><span class="n">Base</span><span class="p">]</span> <span class="p">[</span><span class="n">Recur</span><span class="p">]</span> <span class="n">primrec</span>
|
||
|
||
<span class="mi">0</span> <span class="p">[</span><span class="n">Base</span><span class="p">]</span> <span class="p">[</span><span class="n">Recur</span><span class="p">]</span> <span class="n">primrec</span>
|
||
<span class="o">------------------------------</span>
|
||
<span class="n">Base</span>
|
||
|
||
<span class="n">n</span> <span class="p">[</span><span class="n">Base</span><span class="p">]</span> <span class="p">[</span><span class="n">Recur</span><span class="p">]</span> <span class="n">primrec</span>
|
||
<span class="o">------------------------------------------</span> <span class="n">n</span> <span class="o">></span> <span class="mi">0</span>
|
||
<span class="n">n</span> <span class="p">(</span><span class="n">n</span><span class="o">-</span><span class="mi">1</span><span class="p">)</span> <span class="p">[</span><span class="n">Base</span><span class="p">]</span> <span class="p">[</span><span class="n">Recur</span><span class="p">]</span> <span class="n">primrec</span> <span class="n">Recur</span>
|
||
</pre></div>
|
||
</div>
|
||
</dd></dl>
|
||
|
||
<dl class="py function">
|
||
<dt class="sig sig-object py" id="joy.library.remove">
|
||
<span class="sig-prename descclassname"><span class="pre">joy.library.</span></span><span class="sig-name descname"><span class="pre">remove</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">S</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/joy/library.html#remove"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#joy.library.remove" title="Permalink to this definition">¶</a></dt>
|
||
<dd><p>Expects an item on the stack and a quote under it and removes that item
|
||
from the the quote. The item is only removed once. If the list is
|
||
empty or the item isn’t in the list then the list is unchanged.</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span> <span class="p">[</span><span class="mi">1</span> <span class="mi">2</span> <span class="mi">3</span> <span class="mi">1</span><span class="p">]</span> <span class="mi">1</span> <span class="n">remove</span>
|
||
<span class="o">------------------------</span>
|
||
<span class="p">[</span><span class="mi">2</span> <span class="mi">3</span> <span class="mi">1</span><span class="p">]</span>
|
||
</pre></div>
|
||
</div>
|
||
</dd></dl>
|
||
|
||
<dl class="py function">
|
||
<dt class="sig sig-object py" id="joy.library.reverse">
|
||
<span class="sig-prename descclassname"><span class="pre">joy.library.</span></span><span class="sig-name descname"><span class="pre">reverse</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">S</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/joy/library.html#reverse"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#joy.library.reverse" title="Permalink to this definition">¶</a></dt>
|
||
<dd><p>Reverse the list on the top of the stack.</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">reverse</span> <span class="o">==</span> <span class="p">[]</span> <span class="n">swap</span> <span class="n">shunt</span>
|
||
</pre></div>
|
||
</div>
|
||
</dd></dl>
|
||
|
||
<dl class="py function">
|
||
<dt class="sig sig-object py" id="joy.library.select">
|
||
<span class="sig-prename descclassname"><span class="pre">joy.library.</span></span><span class="sig-name descname"><span class="pre">select</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">stack</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/joy/library.html#select"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#joy.library.select" title="Permalink to this definition">¶</a></dt>
|
||
<dd><p>Use a Boolean value to select one of two items from a sequence.</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span> <span class="p">[</span><span class="n">A</span> <span class="n">B</span><span class="p">]</span> <span class="n">false</span> <span class="n">select</span>
|
||
<span class="o">------------------------</span>
|
||
<span class="n">A</span>
|
||
|
||
|
||
<span class="p">[</span><span class="n">A</span> <span class="n">B</span><span class="p">]</span> <span class="n">true</span> <span class="n">select</span>
|
||
<span class="o">-----------------------</span>
|
||
<span class="n">B</span>
|
||
</pre></div>
|
||
</div>
|
||
<p>The sequence can contain more than two items but not fewer.
|
||
Currently Python semantics are used to evaluate the “truthiness” of the
|
||
Boolean value (so empty string, zero, etc. are counted as false, etc.)</p>
|
||
</dd></dl>
|
||
|
||
<dl class="py function">
|
||
<dt class="sig sig-object py" id="joy.library.sharing">
|
||
<span class="sig-prename descclassname"><span class="pre">joy.library.</span></span><span class="sig-name descname"><span class="pre">sharing</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">stack</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">expression</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">dictionary</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/joy/library.html#sharing"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#joy.library.sharing" title="Permalink to this definition">¶</a></dt>
|
||
<dd><p>Print redistribution information.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="py function">
|
||
<dt class="sig sig-object py" id="joy.library.shunt">
|
||
<span class="sig-prename descclassname"><span class="pre">joy.library.</span></span><span class="sig-name descname"><span class="pre">shunt</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">stack</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/joy/library.html#shunt"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#joy.library.shunt" title="Permalink to this definition">¶</a></dt>
|
||
<dd><p>Like concat but reverses the top list into the second.</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">shunt</span> <span class="o">==</span> <span class="p">[</span><span class="n">swons</span><span class="p">]</span> <span class="n">step</span> <span class="o">==</span> <span class="n">reverse</span> <span class="n">swap</span> <span class="n">concat</span>
|
||
|
||
<span class="p">[</span><span class="n">a</span> <span class="n">b</span> <span class="n">c</span><span class="p">]</span> <span class="p">[</span><span class="n">d</span> <span class="n">e</span> <span class="n">f</span><span class="p">]</span> <span class="n">shunt</span>
|
||
<span class="o">---------------------------</span>
|
||
<span class="p">[</span><span class="n">f</span> <span class="n">e</span> <span class="n">d</span> <span class="n">a</span> <span class="n">b</span> <span class="n">c</span><span class="p">]</span>
|
||
</pre></div>
|
||
</div>
|
||
</dd></dl>
|
||
|
||
<dl class="py function">
|
||
<dt class="sig sig-object py" id="joy.library.sort_">
|
||
<span class="sig-prename descclassname"><span class="pre">joy.library.</span></span><span class="sig-name descname"><span class="pre">sort_</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">S</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/joy/library.html#sort_"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#joy.library.sort_" title="Permalink to this definition">¶</a></dt>
|
||
<dd><p>Given a list return it sorted.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="py function">
|
||
<dt class="sig sig-object py" id="joy.library.sqrt">
|
||
<span class="sig-prename descclassname"><span class="pre">joy.library.</span></span><span class="sig-name descname"><span class="pre">sqrt</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">a</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/joy/library.html#sqrt"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#joy.library.sqrt" title="Permalink to this definition">¶</a></dt>
|
||
<dd><p>Return the square root of the number a.
|
||
Negative numbers return complex roots.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="py function">
|
||
<dt class="sig sig-object py" id="joy.library.step">
|
||
<span class="sig-prename descclassname"><span class="pre">joy.library.</span></span><span class="sig-name descname"><span class="pre">step</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">S</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">expression</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">dictionary</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/joy/library.html#step"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#joy.library.step" title="Permalink to this definition">¶</a></dt>
|
||
<dd><p>Run a quoted program on each item in a sequence.</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span> <span class="o">...</span> <span class="p">[]</span> <span class="p">[</span><span class="n">Q</span><span class="p">]</span> <span class="o">.</span> <span class="n">step</span>
|
||
<span class="o">-----------------------</span>
|
||
<span class="o">...</span> <span class="o">.</span>
|
||
|
||
|
||
<span class="o">...</span> <span class="p">[</span><span class="n">a</span><span class="p">]</span> <span class="p">[</span><span class="n">Q</span><span class="p">]</span> <span class="o">.</span> <span class="n">step</span>
|
||
<span class="o">------------------------</span>
|
||
<span class="o">...</span> <span class="n">a</span> <span class="o">.</span> <span class="n">Q</span>
|
||
|
||
|
||
<span class="o">...</span> <span class="p">[</span><span class="n">a</span> <span class="n">b</span> <span class="n">c</span><span class="p">]</span> <span class="p">[</span><span class="n">Q</span><span class="p">]</span> <span class="o">.</span> <span class="n">step</span>
|
||
<span class="o">----------------------------------------</span>
|
||
<span class="o">...</span> <span class="n">a</span> <span class="o">.</span> <span class="n">Q</span> <span class="p">[</span><span class="n">b</span> <span class="n">c</span><span class="p">]</span> <span class="p">[</span><span class="n">Q</span><span class="p">]</span> <span class="n">step</span>
|
||
</pre></div>
|
||
</div>
|
||
<p>The step combinator executes the quotation on each member of the list
|
||
on top of the stack.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="py function">
|
||
<dt class="sig sig-object py" id="joy.library.succ">
|
||
<span class="sig-prename descclassname"><span class="pre">joy.library.</span></span><span class="sig-name descname"><span class="pre">succ</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">S</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/joy/library.html#succ"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#joy.library.succ" title="Permalink to this definition">¶</a></dt>
|
||
<dd><p>Increment TOS.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="py function">
|
||
<dt class="sig sig-object py" id="joy.library.sum_">
|
||
<span class="sig-prename descclassname"><span class="pre">joy.library.</span></span><span class="sig-name descname"><span class="pre">sum_</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">S</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/joy/library.html#sum_"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#joy.library.sum_" title="Permalink to this definition">¶</a></dt>
|
||
<dd><p>Given a quoted sequence of numbers return the sum.</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="nb">sum</span> <span class="o">==</span> <span class="mi">0</span> <span class="n">swap</span> <span class="p">[</span><span class="o">+</span><span class="p">]</span> <span class="n">step</span>
|
||
</pre></div>
|
||
</div>
|
||
</dd></dl>
|
||
|
||
<dl class="py function">
|
||
<dt class="sig sig-object py" id="joy.library.take">
|
||
<span class="sig-prename descclassname"><span class="pre">joy.library.</span></span><span class="sig-name descname"><span class="pre">take</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">stack</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/joy/library.html#take"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#joy.library.take" title="Permalink to this definition">¶</a></dt>
|
||
<dd><p>Expects an integer and a quote on the stack and returns the quote with
|
||
just the top n items in reverse order (because that’s easier and you can
|
||
use reverse if needed.)</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span> <span class="p">[</span><span class="n">a</span> <span class="n">b</span> <span class="n">c</span> <span class="n">d</span><span class="p">]</span> <span class="mi">2</span> <span class="n">take</span>
|
||
<span class="o">----------------------</span>
|
||
<span class="p">[</span><span class="n">b</span> <span class="n">a</span><span class="p">]</span>
|
||
</pre></div>
|
||
</div>
|
||
</dd></dl>
|
||
|
||
<dl class="py function">
|
||
<dt class="sig sig-object py" id="joy.library.times">
|
||
<span class="sig-prename descclassname"><span class="pre">joy.library.</span></span><span class="sig-name descname"><span class="pre">times</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">stack</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">expression</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">dictionary</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/joy/library.html#times"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#joy.library.times" title="Permalink to this definition">¶</a></dt>
|
||
<dd><p>times == [– dip] cons [swap] infra [0 >] swap while pop</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span> <span class="o">...</span> <span class="n">n</span> <span class="p">[</span><span class="n">Q</span><span class="p">]</span> <span class="o">.</span> <span class="n">times</span>
|
||
<span class="o">---------------------</span> <span class="n">w</span><span class="o">/</span> <span class="n">n</span> <span class="o"><=</span> <span class="mi">0</span>
|
||
<span class="o">...</span> <span class="o">.</span>
|
||
|
||
|
||
<span class="o">...</span> <span class="mi">1</span> <span class="p">[</span><span class="n">Q</span><span class="p">]</span> <span class="o">.</span> <span class="n">times</span>
|
||
<span class="o">-----------------------</span>
|
||
<span class="o">...</span> <span class="o">.</span> <span class="n">Q</span>
|
||
|
||
|
||
<span class="o">...</span> <span class="n">n</span> <span class="p">[</span><span class="n">Q</span><span class="p">]</span> <span class="o">.</span> <span class="n">times</span>
|
||
<span class="o">-------------------------------------</span> <span class="n">w</span><span class="o">/</span> <span class="n">n</span> <span class="o">></span> <span class="mi">1</span>
|
||
<span class="o">...</span> <span class="o">.</span> <span class="n">Q</span> <span class="p">(</span><span class="n">n</span> <span class="o">-</span> <span class="mi">1</span><span class="p">)</span> <span class="p">[</span><span class="n">Q</span><span class="p">]</span> <span class="n">times</span>
|
||
</pre></div>
|
||
</div>
|
||
</dd></dl>
|
||
|
||
<dl class="py function">
|
||
<dt class="sig sig-object py" id="joy.library.unique">
|
||
<span class="sig-prename descclassname"><span class="pre">joy.library.</span></span><span class="sig-name descname"><span class="pre">unique</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">S</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/joy/library.html#unique"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#joy.library.unique" title="Permalink to this definition">¶</a></dt>
|
||
<dd><p>Given a list remove duplicate items.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="py function">
|
||
<dt class="sig sig-object py" id="joy.library.void">
|
||
<span class="sig-prename descclassname"><span class="pre">joy.library.</span></span><span class="sig-name descname"><span class="pre">void</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">stack</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/joy/library.html#void"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#joy.library.void" title="Permalink to this definition">¶</a></dt>
|
||
<dd><p>True if the form on TOS is void otherwise False.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="py function">
|
||
<dt class="sig sig-object py" id="joy.library.warranty">
|
||
<span class="sig-prename descclassname"><span class="pre">joy.library.</span></span><span class="sig-name descname"><span class="pre">warranty</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">stack</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">expression</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">dictionary</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/joy/library.html#warranty"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#joy.library.warranty" title="Permalink to this definition">¶</a></dt>
|
||
<dd><p>Print warranty information.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="py function">
|
||
<dt class="sig sig-object py" id="joy.library.words">
|
||
<span class="sig-prename descclassname"><span class="pre">joy.library.</span></span><span class="sig-name descname"><span class="pre">words</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">stack</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">expression</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">dictionary</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/joy/library.html#words"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#joy.library.words" title="Permalink to this definition">¶</a></dt>
|
||
<dd><p>Print all the words in alphabetical order.</p>
|
||
</dd></dl>
|
||
|
||
<dl class="py function">
|
||
<dt class="sig sig-object py" id="joy.library.x">
|
||
<span class="sig-prename descclassname"><span class="pre">joy.library.</span></span><span class="sig-name descname"><span class="pre">x</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">stack</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">expression</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">dictionary</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/joy/library.html#x"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#joy.library.x" title="Permalink to this definition">¶</a></dt>
|
||
<dd><div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">x</span> <span class="o">==</span> <span class="n">dup</span> <span class="n">i</span>
|
||
|
||
<span class="o">...</span> <span class="p">[</span><span class="n">Q</span><span class="p">]</span> <span class="n">x</span> <span class="o">=</span> <span class="o">...</span> <span class="p">[</span><span class="n">Q</span><span class="p">]</span> <span class="n">dup</span> <span class="n">i</span>
|
||
<span class="o">...</span> <span class="p">[</span><span class="n">Q</span><span class="p">]</span> <span class="n">x</span> <span class="o">=</span> <span class="o">...</span> <span class="p">[</span><span class="n">Q</span><span class="p">]</span> <span class="p">[</span><span class="n">Q</span><span class="p">]</span> <span class="n">i</span>
|
||
<span class="o">...</span> <span class="p">[</span><span class="n">Q</span><span class="p">]</span> <span class="n">x</span> <span class="o">=</span> <span class="o">...</span> <span class="p">[</span><span class="n">Q</span><span class="p">]</span> <span class="n">Q</span>
|
||
</pre></div>
|
||
</div>
|
||
</dd></dl>
|
||
|
||
<dl class="py function">
|
||
<dt class="sig sig-object py" id="joy.library.zip_">
|
||
<span class="sig-prename descclassname"><span class="pre">joy.library.</span></span><span class="sig-name descname"><span class="pre">zip_</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">S</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/joy/library.html#zip_"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#joy.library.zip_" title="Permalink to this definition">¶</a></dt>
|
||
<dd><p>Replace the two lists on the top of the stack with a list of the pairs
|
||
from each list. The smallest list sets the length of the result list.</p>
|
||
</dd></dl>
|
||
|
||
</section>
|
||
<section id="module-joy.utils.generated_library">
|
||
<span id="auto-generated-functions"></span><h2>Auto-generated Functions<a class="headerlink" href="#module-joy.utils.generated_library" title="Permalink to this headline">¶</a></h2>
|
||
<dl class="py function">
|
||
<dt class="sig sig-object py" id="joy.utils.generated_library.ccons">
|
||
<span class="sig-prename descclassname"><span class="pre">joy.utils.generated_library.</span></span><span class="sig-name descname"><span class="pre">ccons</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">stack</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/joy/utils/generated_library.html#ccons"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#joy.utils.generated_library.ccons" title="Permalink to this definition">¶</a></dt>
|
||
<dd><div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="p">(</span><span class="n">a2</span> <span class="n">a1</span> <span class="p">[</span><span class="o">..</span><span class="mf">.1</span><span class="p">]</span> <span class="o">--</span> <span class="p">[</span><span class="n">a2</span> <span class="n">a1</span> <span class="o">..</span><span class="mf">.1</span><span class="p">])</span>
|
||
</pre></div>
|
||
</div>
|
||
</dd></dl>
|
||
|
||
<dl class="py function">
|
||
<dt class="sig sig-object py" id="joy.utils.generated_library.cons">
|
||
<span class="sig-prename descclassname"><span class="pre">joy.utils.generated_library.</span></span><span class="sig-name descname"><span class="pre">cons</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">stack</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/joy/utils/generated_library.html#cons"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#joy.utils.generated_library.cons" title="Permalink to this definition">¶</a></dt>
|
||
<dd><div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="p">(</span><span class="n">a1</span> <span class="p">[</span><span class="o">..</span><span class="mf">.0</span><span class="p">]</span> <span class="o">--</span> <span class="p">[</span><span class="n">a1</span> <span class="o">..</span><span class="mf">.0</span><span class="p">])</span>
|
||
</pre></div>
|
||
</div>
|
||
</dd></dl>
|
||
|
||
<dl class="py function">
|
||
<dt class="sig sig-object py" id="joy.utils.generated_library.dup">
|
||
<span class="sig-prename descclassname"><span class="pre">joy.utils.generated_library.</span></span><span class="sig-name descname"><span class="pre">dup</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">stack</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/joy/utils/generated_library.html#dup"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#joy.utils.generated_library.dup" title="Permalink to this definition">¶</a></dt>
|
||
<dd><div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="p">(</span><span class="n">a1</span> <span class="o">--</span> <span class="n">a1</span> <span class="n">a1</span><span class="p">)</span>
|
||
</pre></div>
|
||
</div>
|
||
</dd></dl>
|
||
|
||
<dl class="py function">
|
||
<dt class="sig sig-object py" id="joy.utils.generated_library.dupd">
|
||
<span class="sig-prename descclassname"><span class="pre">joy.utils.generated_library.</span></span><span class="sig-name descname"><span class="pre">dupd</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">stack</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/joy/utils/generated_library.html#dupd"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#joy.utils.generated_library.dupd" title="Permalink to this definition">¶</a></dt>
|
||
<dd><div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="p">(</span><span class="n">a2</span> <span class="n">a1</span> <span class="o">--</span> <span class="n">a2</span> <span class="n">a2</span> <span class="n">a1</span><span class="p">)</span>
|
||
</pre></div>
|
||
</div>
|
||
</dd></dl>
|
||
|
||
<dl class="py function">
|
||
<dt class="sig sig-object py" id="joy.utils.generated_library.dupdd">
|
||
<span class="sig-prename descclassname"><span class="pre">joy.utils.generated_library.</span></span><span class="sig-name descname"><span class="pre">dupdd</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">stack</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/joy/utils/generated_library.html#dupdd"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#joy.utils.generated_library.dupdd" title="Permalink to this definition">¶</a></dt>
|
||
<dd><div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="p">(</span><span class="n">a3</span> <span class="n">a2</span> <span class="n">a1</span> <span class="o">--</span> <span class="n">a3</span> <span class="n">a3</span> <span class="n">a2</span> <span class="n">a1</span><span class="p">)</span>
|
||
</pre></div>
|
||
</div>
|
||
</dd></dl>
|
||
|
||
<dl class="py function">
|
||
<dt class="sig sig-object py" id="joy.utils.generated_library.first">
|
||
<span class="sig-prename descclassname"><span class="pre">joy.utils.generated_library.</span></span><span class="sig-name descname"><span class="pre">first</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">stack</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/joy/utils/generated_library.html#first"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#joy.utils.generated_library.first" title="Permalink to this definition">¶</a></dt>
|
||
<dd><div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="p">([</span><span class="n">a1</span> <span class="o">..</span><span class="mf">.1</span><span class="p">]</span> <span class="o">--</span> <span class="n">a1</span><span class="p">)</span>
|
||
</pre></div>
|
||
</div>
|
||
</dd></dl>
|
||
|
||
<dl class="py function">
|
||
<dt class="sig sig-object py" id="joy.utils.generated_library.first_two">
|
||
<span class="sig-prename descclassname"><span class="pre">joy.utils.generated_library.</span></span><span class="sig-name descname"><span class="pre">first_two</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">stack</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/joy/utils/generated_library.html#first_two"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#joy.utils.generated_library.first_two" title="Permalink to this definition">¶</a></dt>
|
||
<dd><div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="p">([</span><span class="n">a1</span> <span class="n">a2</span> <span class="o">..</span><span class="mf">.1</span><span class="p">]</span> <span class="o">--</span> <span class="n">a1</span> <span class="n">a2</span><span class="p">)</span>
|
||
</pre></div>
|
||
</div>
|
||
</dd></dl>
|
||
|
||
<dl class="py function">
|
||
<dt class="sig sig-object py" id="joy.utils.generated_library.fourth">
|
||
<span class="sig-prename descclassname"><span class="pre">joy.utils.generated_library.</span></span><span class="sig-name descname"><span class="pre">fourth</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">stack</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/joy/utils/generated_library.html#fourth"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#joy.utils.generated_library.fourth" title="Permalink to this definition">¶</a></dt>
|
||
<dd><div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="p">([</span><span class="n">a1</span> <span class="n">a2</span> <span class="n">a3</span> <span class="n">a4</span> <span class="o">..</span><span class="mf">.1</span><span class="p">]</span> <span class="o">--</span> <span class="n">a4</span><span class="p">)</span>
|
||
</pre></div>
|
||
</div>
|
||
</dd></dl>
|
||
|
||
<dl class="py function">
|
||
<dt class="sig sig-object py" id="joy.utils.generated_library.over">
|
||
<span class="sig-prename descclassname"><span class="pre">joy.utils.generated_library.</span></span><span class="sig-name descname"><span class="pre">over</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">stack</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/joy/utils/generated_library.html#over"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#joy.utils.generated_library.over" title="Permalink to this definition">¶</a></dt>
|
||
<dd><div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="p">(</span><span class="n">a2</span> <span class="n">a1</span> <span class="o">--</span> <span class="n">a2</span> <span class="n">a1</span> <span class="n">a2</span><span class="p">)</span>
|
||
</pre></div>
|
||
</div>
|
||
</dd></dl>
|
||
|
||
<dl class="py function">
|
||
<dt class="sig sig-object py" id="joy.utils.generated_library.pop">
|
||
<span class="sig-prename descclassname"><span class="pre">joy.utils.generated_library.</span></span><span class="sig-name descname"><span class="pre">pop</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">stack</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/joy/utils/generated_library.html#pop"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#joy.utils.generated_library.pop" title="Permalink to this definition">¶</a></dt>
|
||
<dd><div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="p">(</span><span class="n">a1</span> <span class="o">--</span><span class="p">)</span>
|
||
</pre></div>
|
||
</div>
|
||
</dd></dl>
|
||
|
||
<dl class="py function">
|
||
<dt class="sig sig-object py" id="joy.utils.generated_library.popd">
|
||
<span class="sig-prename descclassname"><span class="pre">joy.utils.generated_library.</span></span><span class="sig-name descname"><span class="pre">popd</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">stack</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/joy/utils/generated_library.html#popd"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#joy.utils.generated_library.popd" title="Permalink to this definition">¶</a></dt>
|
||
<dd><div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="p">(</span><span class="n">a2</span> <span class="n">a1</span> <span class="o">--</span> <span class="n">a1</span><span class="p">)</span>
|
||
</pre></div>
|
||
</div>
|
||
</dd></dl>
|
||
|
||
<dl class="py function">
|
||
<dt class="sig sig-object py" id="joy.utils.generated_library.popdd">
|
||
<span class="sig-prename descclassname"><span class="pre">joy.utils.generated_library.</span></span><span class="sig-name descname"><span class="pre">popdd</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">stack</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/joy/utils/generated_library.html#popdd"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#joy.utils.generated_library.popdd" title="Permalink to this definition">¶</a></dt>
|
||
<dd><div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="p">(</span><span class="n">a3</span> <span class="n">a2</span> <span class="n">a1</span> <span class="o">--</span> <span class="n">a2</span> <span class="n">a1</span><span class="p">)</span>
|
||
</pre></div>
|
||
</div>
|
||
</dd></dl>
|
||
|
||
<dl class="py function">
|
||
<dt class="sig sig-object py" id="joy.utils.generated_library.popop">
|
||
<span class="sig-prename descclassname"><span class="pre">joy.utils.generated_library.</span></span><span class="sig-name descname"><span class="pre">popop</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">stack</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/joy/utils/generated_library.html#popop"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#joy.utils.generated_library.popop" title="Permalink to this definition">¶</a></dt>
|
||
<dd><div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="p">(</span><span class="n">a2</span> <span class="n">a1</span> <span class="o">--</span><span class="p">)</span>
|
||
</pre></div>
|
||
</div>
|
||
</dd></dl>
|
||
|
||
<dl class="py function">
|
||
<dt class="sig sig-object py" id="joy.utils.generated_library.popopd">
|
||
<span class="sig-prename descclassname"><span class="pre">joy.utils.generated_library.</span></span><span class="sig-name descname"><span class="pre">popopd</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">stack</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/joy/utils/generated_library.html#popopd"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#joy.utils.generated_library.popopd" title="Permalink to this definition">¶</a></dt>
|
||
<dd><div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="p">(</span><span class="n">a3</span> <span class="n">a2</span> <span class="n">a1</span> <span class="o">--</span> <span class="n">a1</span><span class="p">)</span>
|
||
</pre></div>
|
||
</div>
|
||
</dd></dl>
|
||
|
||
<dl class="py function">
|
||
<dt class="sig sig-object py" id="joy.utils.generated_library.popopdd">
|
||
<span class="sig-prename descclassname"><span class="pre">joy.utils.generated_library.</span></span><span class="sig-name descname"><span class="pre">popopdd</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">stack</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/joy/utils/generated_library.html#popopdd"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#joy.utils.generated_library.popopdd" title="Permalink to this definition">¶</a></dt>
|
||
<dd><div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="p">(</span><span class="n">a4</span> <span class="n">a3</span> <span class="n">a2</span> <span class="n">a1</span> <span class="o">--</span> <span class="n">a2</span> <span class="n">a1</span><span class="p">)</span>
|
||
</pre></div>
|
||
</div>
|
||
</dd></dl>
|
||
|
||
<dl class="py function">
|
||
<dt class="sig sig-object py" id="joy.utils.generated_library.rest">
|
||
<span class="sig-prename descclassname"><span class="pre">joy.utils.generated_library.</span></span><span class="sig-name descname"><span class="pre">rest</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">stack</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/joy/utils/generated_library.html#rest"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#joy.utils.generated_library.rest" title="Permalink to this definition">¶</a></dt>
|
||
<dd><div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="p">([</span><span class="n">a1</span> <span class="o">..</span><span class="mf">.0</span><span class="p">]</span> <span class="o">--</span> <span class="p">[</span><span class="o">..</span><span class="mf">.0</span><span class="p">])</span>
|
||
</pre></div>
|
||
</div>
|
||
</dd></dl>
|
||
|
||
<dl class="py function">
|
||
<dt class="sig sig-object py" id="joy.utils.generated_library.rolldown">
|
||
<span class="sig-prename descclassname"><span class="pre">joy.utils.generated_library.</span></span><span class="sig-name descname"><span class="pre">rolldown</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">stack</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/joy/utils/generated_library.html#rolldown"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#joy.utils.generated_library.rolldown" title="Permalink to this definition">¶</a></dt>
|
||
<dd><div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="p">(</span><span class="n">a1</span> <span class="n">a2</span> <span class="n">a3</span> <span class="o">--</span> <span class="n">a2</span> <span class="n">a3</span> <span class="n">a1</span><span class="p">)</span>
|
||
</pre></div>
|
||
</div>
|
||
</dd></dl>
|
||
|
||
<dl class="py function">
|
||
<dt class="sig sig-object py" id="joy.utils.generated_library.rollup">
|
||
<span class="sig-prename descclassname"><span class="pre">joy.utils.generated_library.</span></span><span class="sig-name descname"><span class="pre">rollup</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">stack</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/joy/utils/generated_library.html#rollup"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#joy.utils.generated_library.rollup" title="Permalink to this definition">¶</a></dt>
|
||
<dd><div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="p">(</span><span class="n">a1</span> <span class="n">a2</span> <span class="n">a3</span> <span class="o">--</span> <span class="n">a3</span> <span class="n">a1</span> <span class="n">a2</span><span class="p">)</span>
|
||
</pre></div>
|
||
</div>
|
||
</dd></dl>
|
||
|
||
<dl class="py function">
|
||
<dt class="sig sig-object py" id="joy.utils.generated_library.rrest">
|
||
<span class="sig-prename descclassname"><span class="pre">joy.utils.generated_library.</span></span><span class="sig-name descname"><span class="pre">rrest</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">stack</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/joy/utils/generated_library.html#rrest"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#joy.utils.generated_library.rrest" title="Permalink to this definition">¶</a></dt>
|
||
<dd><div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="p">([</span><span class="n">a1</span> <span class="n">a2</span> <span class="o">..</span><span class="mf">.1</span><span class="p">]</span> <span class="o">--</span> <span class="p">[</span><span class="o">..</span><span class="mf">.1</span><span class="p">])</span>
|
||
</pre></div>
|
||
</div>
|
||
</dd></dl>
|
||
|
||
<dl class="py function">
|
||
<dt class="sig sig-object py" id="joy.utils.generated_library.second">
|
||
<span class="sig-prename descclassname"><span class="pre">joy.utils.generated_library.</span></span><span class="sig-name descname"><span class="pre">second</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">stack</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/joy/utils/generated_library.html#second"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#joy.utils.generated_library.second" title="Permalink to this definition">¶</a></dt>
|
||
<dd><div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="p">([</span><span class="n">a1</span> <span class="n">a2</span> <span class="o">..</span><span class="mf">.1</span><span class="p">]</span> <span class="o">--</span> <span class="n">a2</span><span class="p">)</span>
|
||
</pre></div>
|
||
</div>
|
||
</dd></dl>
|
||
|
||
<dl class="py function">
|
||
<dt class="sig sig-object py" id="joy.utils.generated_library.stack">
|
||
<span class="sig-prename descclassname"><span class="pre">joy.utils.generated_library.</span></span><span class="sig-name descname"><span class="pre">stack</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">stack</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/joy/utils/generated_library.html#stack"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#joy.utils.generated_library.stack" title="Permalink to this definition">¶</a></dt>
|
||
<dd><div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="p">(</span><span class="o">...</span> <span class="o">--</span> <span class="o">...</span> <span class="p">[</span><span class="o">...</span><span class="p">])</span>
|
||
</pre></div>
|
||
</div>
|
||
</dd></dl>
|
||
|
||
<dl class="py function">
|
||
<dt class="sig sig-object py" id="joy.utils.generated_library.stuncons">
|
||
<span class="sig-prename descclassname"><span class="pre">joy.utils.generated_library.</span></span><span class="sig-name descname"><span class="pre">stuncons</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">stack</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/joy/utils/generated_library.html#stuncons"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#joy.utils.generated_library.stuncons" title="Permalink to this definition">¶</a></dt>
|
||
<dd><div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="p">(</span><span class="o">...</span> <span class="n">a1</span> <span class="o">--</span> <span class="o">...</span> <span class="n">a1</span> <span class="n">a1</span> <span class="p">[</span><span class="o">...</span><span class="p">])</span>
|
||
</pre></div>
|
||
</div>
|
||
</dd></dl>
|
||
|
||
<dl class="py function">
|
||
<dt class="sig sig-object py" id="joy.utils.generated_library.stununcons">
|
||
<span class="sig-prename descclassname"><span class="pre">joy.utils.generated_library.</span></span><span class="sig-name descname"><span class="pre">stununcons</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">stack</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/joy/utils/generated_library.html#stununcons"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#joy.utils.generated_library.stununcons" title="Permalink to this definition">¶</a></dt>
|
||
<dd><div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="p">(</span><span class="o">...</span> <span class="n">a2</span> <span class="n">a1</span> <span class="o">--</span> <span class="o">...</span> <span class="n">a2</span> <span class="n">a1</span> <span class="n">a1</span> <span class="n">a2</span> <span class="p">[</span><span class="o">...</span><span class="p">])</span>
|
||
</pre></div>
|
||
</div>
|
||
</dd></dl>
|
||
|
||
<dl class="py function">
|
||
<dt class="sig sig-object py" id="joy.utils.generated_library.swaack">
|
||
<span class="sig-prename descclassname"><span class="pre">joy.utils.generated_library.</span></span><span class="sig-name descname"><span class="pre">swaack</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">stack</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/joy/utils/generated_library.html#swaack"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#joy.utils.generated_library.swaack" title="Permalink to this definition">¶</a></dt>
|
||
<dd><div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="p">([</span><span class="o">..</span><span class="mf">.1</span><span class="p">]</span> <span class="o">--</span> <span class="p">[</span><span class="o">..</span><span class="mf">.0</span><span class="p">])</span>
|
||
</pre></div>
|
||
</div>
|
||
</dd></dl>
|
||
|
||
<dl class="py function">
|
||
<dt class="sig sig-object py" id="joy.utils.generated_library.swap">
|
||
<span class="sig-prename descclassname"><span class="pre">joy.utils.generated_library.</span></span><span class="sig-name descname"><span class="pre">swap</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">stack</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/joy/utils/generated_library.html#swap"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#joy.utils.generated_library.swap" title="Permalink to this definition">¶</a></dt>
|
||
<dd><div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="p">(</span><span class="n">a1</span> <span class="n">a2</span> <span class="o">--</span> <span class="n">a2</span> <span class="n">a1</span><span class="p">)</span>
|
||
</pre></div>
|
||
</div>
|
||
</dd></dl>
|
||
|
||
<dl class="py function">
|
||
<dt class="sig sig-object py" id="joy.utils.generated_library.swons">
|
||
<span class="sig-prename descclassname"><span class="pre">joy.utils.generated_library.</span></span><span class="sig-name descname"><span class="pre">swons</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">stack</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/joy/utils/generated_library.html#swons"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#joy.utils.generated_library.swons" title="Permalink to this definition">¶</a></dt>
|
||
<dd><div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="p">([</span><span class="o">..</span><span class="mf">.1</span><span class="p">]</span> <span class="n">a1</span> <span class="o">--</span> <span class="p">[</span><span class="n">a1</span> <span class="o">..</span><span class="mf">.1</span><span class="p">])</span>
|
||
</pre></div>
|
||
</div>
|
||
</dd></dl>
|
||
|
||
<dl class="py function">
|
||
<dt class="sig sig-object py" id="joy.utils.generated_library.third">
|
||
<span class="sig-prename descclassname"><span class="pre">joy.utils.generated_library.</span></span><span class="sig-name descname"><span class="pre">third</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">stack</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/joy/utils/generated_library.html#third"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#joy.utils.generated_library.third" title="Permalink to this definition">¶</a></dt>
|
||
<dd><div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="p">([</span><span class="n">a1</span> <span class="n">a2</span> <span class="n">a3</span> <span class="o">..</span><span class="mf">.1</span><span class="p">]</span> <span class="o">--</span> <span class="n">a3</span><span class="p">)</span>
|
||
</pre></div>
|
||
</div>
|
||
</dd></dl>
|
||
|
||
<dl class="py function">
|
||
<dt class="sig sig-object py" id="joy.utils.generated_library.tuck">
|
||
<span class="sig-prename descclassname"><span class="pre">joy.utils.generated_library.</span></span><span class="sig-name descname"><span class="pre">tuck</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">stack</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/joy/utils/generated_library.html#tuck"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#joy.utils.generated_library.tuck" title="Permalink to this definition">¶</a></dt>
|
||
<dd><div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="p">(</span><span class="n">a2</span> <span class="n">a1</span> <span class="o">--</span> <span class="n">a1</span> <span class="n">a2</span> <span class="n">a1</span><span class="p">)</span>
|
||
</pre></div>
|
||
</div>
|
||
</dd></dl>
|
||
|
||
<dl class="py function">
|
||
<dt class="sig sig-object py" id="joy.utils.generated_library.uncons">
|
||
<span class="sig-prename descclassname"><span class="pre">joy.utils.generated_library.</span></span><span class="sig-name descname"><span class="pre">uncons</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">stack</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/joy/utils/generated_library.html#uncons"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#joy.utils.generated_library.uncons" title="Permalink to this definition">¶</a></dt>
|
||
<dd><div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="p">([</span><span class="n">a1</span> <span class="o">..</span><span class="mf">.0</span><span class="p">]</span> <span class="o">--</span> <span class="n">a1</span> <span class="p">[</span><span class="o">..</span><span class="mf">.0</span><span class="p">])</span>
|
||
</pre></div>
|
||
</div>
|
||
</dd></dl>
|
||
|
||
<dl class="py function">
|
||
<dt class="sig sig-object py" id="joy.utils.generated_library.unit">
|
||
<span class="sig-prename descclassname"><span class="pre">joy.utils.generated_library.</span></span><span class="sig-name descname"><span class="pre">unit</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">stack</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/joy/utils/generated_library.html#unit"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#joy.utils.generated_library.unit" title="Permalink to this definition">¶</a></dt>
|
||
<dd><div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="p">(</span><span class="n">a1</span> <span class="o">--</span> <span class="p">[</span><span class="n">a1</span> <span class="p">])</span>
|
||
</pre></div>
|
||
</div>
|
||
</dd></dl>
|
||
|
||
<dl class="py function">
|
||
<dt class="sig sig-object py" id="joy.utils.generated_library.unswons">
|
||
<span class="sig-prename descclassname"><span class="pre">joy.utils.generated_library.</span></span><span class="sig-name descname"><span class="pre">unswons</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">stack</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/joy/utils/generated_library.html#unswons"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#joy.utils.generated_library.unswons" title="Permalink to this definition">¶</a></dt>
|
||
<dd><div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="p">([</span><span class="n">a1</span> <span class="o">..</span><span class="mf">.1</span><span class="p">]</span> <span class="o">--</span> <span class="p">[</span><span class="o">..</span><span class="mf">.1</span><span class="p">]</span> <span class="n">a1</span><span class="p">)</span>
|
||
</pre></div>
|
||
</div>
|
||
</dd></dl>
|
||
|
||
</section>
|
||
</section>
|
||
|
||
|
||
</div>
|
||
|
||
</div>
|
||
</div>
|
||
<div class="sphinxsidebar" role="navigation" aria-label="main navigation">
|
||
<div class="sphinxsidebarwrapper">
|
||
<h1 class="logo"><a href="index.html">Thun</a></h1>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<h3>Navigation</h3>
|
||
<ul class="current">
|
||
<li class="toctree-l1"><a class="reference internal" href="notebooks/Intro.html">Thun: Joy in Python</a></li>
|
||
<li class="toctree-l1"><a class="reference internal" href="joy.html">Joy Interpreter</a></li>
|
||
<li class="toctree-l1"><a class="reference internal" href="stack.html">Stack or Quote or Sequence or List…</a></li>
|
||
<li class="toctree-l1"><a class="reference internal" href="parser.html">Parsing Text into Joy Expressions</a></li>
|
||
<li class="toctree-l1"><a class="reference internal" href="pretty.html">Tracing Joy Execution</a></li>
|
||
<li class="toctree-l1 current"><a class="current reference internal" href="#">Function Reference</a><ul>
|
||
<li class="toctree-l2"><a class="reference internal" href="#module-joy.library"><code class="docutils literal notranslate"><span class="pre">joy.library</span></code></a></li>
|
||
<li class="toctree-l2"><a class="reference internal" href="#module-joy.utils.generated_library">Auto-generated Functions</a></li>
|
||
</ul>
|
||
</li>
|
||
<li class="toctree-l1"><a class="reference internal" href="lib.html">Functions Grouped by, er, Function with Examples</a></li>
|
||
<li class="toctree-l1"><a class="reference internal" href="types.html">Type Inference of Joy Expressions</a></li>
|
||
<li class="toctree-l1"><a class="reference internal" href="notebooks/index.html">Essays about Programming in Joy</a></li>
|
||
</ul>
|
||
|
||
<div class="relations">
|
||
<h3>Related Topics</h3>
|
||
<ul>
|
||
<li><a href="index.html">Documentation overview</a><ul>
|
||
<li>Previous: <a href="pretty.html" title="previous chapter">Tracing Joy Execution</a></li>
|
||
<li>Next: <a href="lib.html" title="next chapter">Functions Grouped by, er, Function with Examples</a></li>
|
||
</ul></li>
|
||
</ul>
|
||
</div>
|
||
<div id="searchbox" style="display: none" role="search">
|
||
<h3 id="searchlabel">Quick search</h3>
|
||
<div class="searchformwrapper">
|
||
<form class="search" action="search.html" method="get">
|
||
<input type="text" name="q" aria-labelledby="searchlabel" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"/>
|
||
<input type="submit" value="Go" />
|
||
</form>
|
||
</div>
|
||
</div>
|
||
<script>$('#searchbox').show(0);</script>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
</div>
|
||
</div>
|
||
<div class="clearer"></div>
|
||
</div>
|
||
<div class="footer" role="contentinfo">
|
||
<a rel="license" href="http://creativecommons.org/licenses/by-nc-sa/4.0/">
|
||
<img alt="Creative Commons License" style="border-width:0" src="https://i.creativecommons.org/l/by-nc-sa/4.0/88x31.png" />
|
||
</a>
|
||
<br />
|
||
<span xmlns:dct="http://purl.org/dc/terms/" property="dct:title">Thun Documentation</span> by <a xmlns:cc="http://creativecommons.org/ns#" href="https://joypy.osdn.io/" property="cc:attributionName" rel="cc:attributionURL">Simon Forman</a> is licensed under a <a rel="license" href="http://creativecommons.org/licenses/by-nc-sa/4.0/">Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License</a>.<br />Based on a work at <a xmlns:dct="http://purl.org/dc/terms/" href="https://osdn.net/projects/joypy/" rel="dct:source">https://osdn.net/projects/joypy/</a>.
|
||
Created using <a href="http://sphinx-doc.org/">Sphinx</a> 4.4.0.
|
||
</div>
|
||
|
||
</body>
|
||
</html> |