Thun 0.4.2 Documentation¶

Thun is dialect of Joy written in Python.

Joy is a programming language created by Manfred von Thun that is easy to use and understand and has many other nice properties. This Python package 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. The main difference between Thun and the originals, other than being written in Python, is that it works by the “Continuation-Passing Style”.

Joy is:

I hope that this package is useful in the sense that it provides an additional joy interpreter (the binary in the archive from La Trobe seems to run just fine on my modern Linux machine!) But I also hope that you can read and understand the Python code and play with the implementation itself.

Example Code¶ Here is an example of Joy code: [[[abs]ii <=][[<>][pop !-]||]&&][[!-][[++]][[--]]ifte dip][[pop !-][--][++]ifte]ifte It might seem unreadable but with a little familiarity it becomes just as legible as any other notation. Some layout helps: [ [[abs] ii <=] [ [<>] [pop !-] || ] && ] [[ !-] [[++]] [[--]] ifte dip] [[pop !-] [--] [++] ifte ] ifte This function accepts two integers on the stack and increments or decrements one of them such that the new pair of numbers is the next coordinate pair in a square spiral (like the kind used to construct an Ulam Spiral). For more information see Square Spiral Example Joy Code

Quick Start¶ Install from PyPI in the usual way: $ pip install Thun To start the REPL: $ python -m joy Continue with the introduction.