Joy Interpreter¶
joy.joy
¶
This module implements an interpreter for a dialect of Joy that attempts to stay very close to the spirit of Joy but does not precisely match the behaviour of the original version(s) written in C.
-
joy.joy.
joy
(stack, expression, dictionary, viewer=None)[source]¶ Evaluate the Joy expression on the stack.
The basic joy() function is quite straightforward. It iterates through a sequence of terms which are either literals (strings, numbers, sequences) or functions. Literals are put onto the stack and functions are executed.
Parameters: - stack (stack) – The stack.
- expression (stack) – The expression to evaluate.
- dictionary (dict) – A
dict
mapping names to Joy functions. - viewer (function) – Optional viewer function.
Return type: (stack, (), dictionary)
-
joy.joy.
repl
(stack=(), dictionary=None)[source]¶ Read-Evaluate-Print Loop
Accept input and run it on the stack, loop.
Parameters: - stack (stack) – The stack.
- dictionary (dict) – A
dict
mapping names to Joy functions.
Return type: stack
-
joy.joy.
run
(text, stack, dictionary, viewer=None)[source]¶ Return the stack resulting from running the Joy code text on the stack.
Parameters: - text (str) – Joy code.
- stack (stack) – The stack.
- dictionary (dict) – A
dict
mapping names to Joy functions. - viewer (function) – Optional viewer function.
Return type: (stack, (), dictionary)