retroforth/doc/QuickRef.md

198 lines
1.9 KiB
Markdown
Raw Normal View History

# RETRO Quick Reference
Displaying Things
-----------------
Numbers
=======
#100 n:put
Characters
==========
$a c:put
Strings
=======
'hello,_world s:put
Mixed
=====
#1 #2 #3 '%n_-_%n_=_%n\n s:format s:put
'Charles' 'Hello_%s\n s:format s:put
Conditionals
------------
Equality
========
#2 #3 eq?
Inequality
==========
#3 #4 -eq?
Greather Than
=============
#3 #4 gt?
Less Than
=========
#3 #4 lt?
Greater Than or Equal To
========================
#3 #4 gteq?
Less Than or Equal To
=====================
#3 #4 lteq?
String Equality
===============
'hello 'world s:eq?
String Inequality
=================
'hello 'world s:eq? not
If / Then
=========
#1 #2 eq? [ 'true ] [ 'false ] choose
#1 #2 eq? [ 'true ] if
#1 #2 eq? [ 'false ] -if
Multiple Comparisons
====================
[ @Base
#8 [ 'octal ] case
#10 [ 'decimal ] case
#16 [ 'hexadecimal ] case
drop (default_case)
] call
Function Defintions
-------------------
Quotes (Anonymous)
==================
[ (code) ]
Quotes can be nested.
Named
=====
:name (stack_comment)
(code) ;
Quotes can be nested inside a named function.
Loops
-----
Unconditional
=============
repeat (code) again
Conditional loops are generally preferable.
Counted
=======
(simple,_no_index_on_stack)
#10 [ $a c:put ] times
Conditional
===========
#10 [ n:dec dup n:put dup n:-zero? ] while
Math
----
Addition
========
#100 #200 +
Subtraction
===========
#400 #32 -
Multiplication
==============
#98 #12 *
Division
========
#200 #4 /
Remainder
=========
#203 #4 mod
Power
=====
Raise 3 to the second power.
#3 #2 n:pow
Absolute Value
==============
#-76 n:abs
Minimum and Maximum Value
=========================
#34 #8 n:min
#34 #8 n:max