We are currently working on new rules for what content should and shouldn't be allowed on this website, and are looking for feedback! See Esolang:2026 topicality proposal to view and give feedback on the current draft.

Joy

From Esolang
Jump to navigation Jump to search
Joy
Designed by Manfred von Thun
Appeared in 2001
Computational class Turing-complete
Reference implementation Defunct
Influenced Cammy, catlangwiki:Factor, mlatu

Joy is the paradigmatic pure concatenative language. It supports function-level programming and pointfree programming. All operations are idealized as stack effects; Joy expressions are like functions which operate on a stack of parameters. Joy is also the origin of the modern approach to quotations in stack-based languages.

mjoy

mjoy is an implementation of Joy in the Lazarus IDE. It's just a subset of Joy. The idea was to introduce children to Joy programming by using a simple turtle graphic system for practice. The turtle graphic commands were formulated entirely in mjoy, with the turtle as a list object.

Example:

   init 100 -100 moveto 45 rad turn 70 move turtle draw

Joy of Postfix

Joy of Postfix is ​​an implementation of Joy in Kotlin for Android mobile phones. It is also a subset of Joy, but it is significantly richer in implemented features than mjoy. It serves as an App for Reverse-Polish-Notation fans who also want to take advantage of Joy's programmable capabilities. Documentation.

Example:

   factorial == [null] [succ] [dup pred] [*] linrec
   
   7 factorial .
   --> 5040

Implementations

See also