metanohi/site/projects/enigma/doc/enigma-0.1-html/Loops.html

68 lines
2.9 KiB
HTML
Raw Normal View History

<html lang="en">
<head>
<title>Loops - Enigma</title>
<meta http-equiv="Content-Type" content="text/html">
<meta name="description" content="Enigma">
<meta name="generator" content="makeinfo 4.13">
<link title="Top" rel="start" href="index.html#Top">
<link rel="up" href="Language.html#Language" title="Language">
<link rel="prev" href="Conditionals.html#Conditionals" title="Conditionals">
<link rel="next" href="Undefined.html#Undefined" title="Undefined">
<link href="http://www.gnu.org/software/texinfo/" rel="generator-home" title="Texinfo Homepage">
<!--
This manual is for Enigma, version 0.1.
Copyright (C) 2010 Niels Serup
Permission is granted to copy, distribute and/or modify this
document under the terms of the GNU Free Documentation License,
Version 1.3 or any later version published by the Free Software
Foundation; with no Invariant Sections, no Front-Cover Texts, and
no Back-Cover Texts. A copy of the license is included in the
section entitled "GNU Free Documentation License".
This document is also available under the terms of the Creative
Commons Attribution-Share Alike 3.0 (or any later version)
Unported license. A copy of the license is available at
`http://creativecommons.org/licenses/by-sa/3.0/legalcode'.
-->
<meta http-equiv="Content-Style-Type" content="text/css">
<style type="text/css"><!--
pre.display { font-family:inherit }
pre.format { font-family:inherit }
pre.smalldisplay { font-family:inherit; font-size:smaller }
pre.smallformat { font-family:inherit; font-size:smaller }
pre.smallexample { font-size:smaller }
pre.smalllisp { font-size:smaller }
span.sc { font-variant:small-caps }
span.roman { font-family:serif; font-weight:normal; }
span.sansserif { font-family:sans-serif; font-weight:normal; }
--></style>
</head>
<body>
<div class="node">
<a name="Loops"></a>
<p>
Next:&nbsp;<a rel="next" accesskey="n" href="Undefined.html#Undefined">Undefined</a>,
Previous:&nbsp;<a rel="previous" accesskey="p" href="Conditionals.html#Conditionals">Conditionals</a>,
Up:&nbsp;<a rel="up" accesskey="u" href="Language.html#Language">Language</a>
<hr>
</div>
<h3 class="section">2.9 Loops</h3>
<p>There are several ways to loop pieces of code in Enigma. One can create
a function that calls itself, for example. It is, however, advised to
use the <code>loop</code> function.
<pre class="verbatim"># Infinite loop
{stdout "Forever\n" ! write; true = return;} ! loop;
</pre>
<code>loop</code> works a bit like <code>act</code>, except that it runs on the
premise of the return value of the function it calls. If it returns
true, or any other value that can be considered true (non-zero numbers,
non-empty strings, files, etc.), it runs the function again. If it
returns false, the loop stops. It naturally runs the first time no
matter what (no return value has been created yet).
</body></html>