Rejoyce is a purely functional, persistent, concatenative language
It maintains an In queue and an Out stackThe In queue represents code yet to be executed, and is initially populated with the program to run
The Out stack represents data to be manipulated, and is initially empty
The two record the complete state of execution at any time
To evaluate a token, Rejoyce returns a completely new In and Out stack