retroforth/doc/QuickRef.md
crc e71709b303 begin work on 2018.6; this release *will* make some changes that break existing code in small ways
FossilOrigin-Name: 2ea7e4d5f74070041c454af65713a478ebe2a9d71bbc9e6bb6add6c256351765
2018-04-25 16:51:46 +00:00

1.9 KiB

RETRO Quick Reference

Displaying Things

Numbers

#100 putn

Characters

$a putc

Strings

'hello,_world puts

Mixed

#1 #2 #3  '%n_-_%n_=_%n\n s:format puts
'Charles' 'Hello_%s\n     s:format puts

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 putc ] times

Conditional

#10 [ n:dec dup putn 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