## ## Intro/sample script for rprb (aka Reverse Polish RuBy) ##

{ Kernel swap puts drop } :say sto { “Enter to continue…” say gets drop } :pause sto

# basic RPN stuff 1 1 + p 2 * p pause

# basic Ruby stuff zero? p 0 zero? p Array.new 1 push p clr pause

# obviously, lines starting with # are ignored, but also.. <<proc { puts “hi!” } call pause

# like Lisp, we have a “read” function “1 1 ” read p # which is equivalent to { 1 1 } p pause

# and an “eval” function to evaluate the results eval p clr pause

# and an “evaln” function to evaluate n times { 1 1 + } 5 dupn 5 evaln p clr

# we have registers.. 1 :a sto p :a rcl p

# registers store our functions :drop rcl p { dup2 + } :fib sto 0 1 fib p

# exen executes multiple times :fib 5 exen

# which is equivalent to :fib rcl 5 evaln

# and a bunch of other stuff