84 lines
		
	
	
		
			3.4 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
			
		
		
	
	
			84 lines
		
	
	
		
			3.4 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
| <html lang="en">
 | |
| <head>
 | |
| <title>Conditionals - 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="Functions.html#Functions" title="Functions">
 | |
| <link rel="next" href="Loops.html#Loops" title="Loops">
 | |
| <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="Conditionals"></a>
 | |
| <p>
 | |
| Next: <a rel="next" accesskey="n" href="Loops.html#Loops">Loops</a>,
 | |
| Previous: <a rel="previous" accesskey="p" href="Functions.html#Functions">Functions</a>,
 | |
| Up: <a rel="up" accesskey="u" href="Language.html#Language">Language</a>
 | |
| <hr>
 | |
| </div>
 | |
| 
 | |
| <h3 class="section">2.8 Conditionals</h3>
 | |
| 
 | |
| <p>Any value can be related to another value. 78 is less than 85. 2 equals
 | |
| 2. "Hi" is not "Bye". Enigma comes with a basic set of functions that
 | |
| can be used to test these relations. The functions <code>greater</code>,
 | |
| <code>lesser</code>, <code>equal</code>, <code>not</code>, <code>or</code> and <code>and</code> are
 | |
| available. These functions return either true or false. To run a
 | |
| function on the condition that a relational function has returned true,
 | |
| use the function <code>act</code>.
 | |
| 
 | |
|    <p>While <code>lesser</code> and <code>greater</code> are aimed at numbers only,
 | |
| and <code>and</code>, <code>or</code> and <code>not</code> are aimed at booleans only,
 | |
| <code>equal</code> can be used on all objects. It tests for all equalities.
 | |
| 
 | |
| <pre class="verbatim">2 = a;
 | |
| 4 = b;
 | |
| 
 | |
| a 2 ! add | temp b ! equal = cond1;
 | |
| "47" ! num | temp 48 ! greater = cond2;
 | |
| 
 | |
| cond1 cond2 ! and | temp write stdout "4 = 4 and 47 > 48\n" ! act;
 | |
| cond1 cond2 ! or | temp write stdout "4 = 4 or 47 > 48\n" ! act;
 | |
| cond2 ! not | cond1 temp ! and | temp write stdout "4 = 4 and !(47 >
 | |
| 48)\n" ! act;
 | |
| </pre>
 | |
| 
 | |
|    <p>Even simpler, one can do this (though there's no real need for it):
 | |
| <pre class="verbatim"># Instead of stdout "Hello" !write;
 | |
| true write stdout "Hello" !act;
 | |
| </pre>
 | |
| 
 | |
|    </body></html>
 | |
| 
 | 
