From Esolang
Jump to: navigation, search

Jolf is a prefix-notation language that transpiles to JavaScript, made by User:Conor O'Brien. You can find an interpreter here and spotty documentation here.

Language Overview

Every character does something. Simple, right? A character can be one of the following types:

  • Control character. This character is used to provide control flow to the program.
  • Operator character. This character "consumes" arguments and returns something based on the arguments.
  • Data character. This character can be used as information for an operator character.
  • Modifying character. These characters do actions, but do not count as data or operators. These commonly change the way in which the Jolf code is parsed, e.g., String mode.
  • Substitution character. This is a character that directly transpiles to something else. Their use is discouraged.

Language Features

List of general abilities of Jolf.

  • Implicit printing. If nothing has been printed, Jolf will print the last item evaluated.
  • Direct transpiling. Using the $ character, you can directly insert JavaScript code. (This trivially proves Jolf's state of Turing completeness.)

Example Programs

Hello, World!

"Hello, World!

The string closes implicitly and is implicitly outputted.


Cheating variant:


q is the programs source code.

Proper quine:


Doubles the string `Q«`--the guillemets are directional strings.

Regular variants:

"e" // with pretty printing enabled


For one item:


Takes input, implicit output.

For an arbitrary amount of items:

oH1          set H to 1
   WH)       while(H){
      a       alert (print)
       oH      and set H =
         m~     a new prompt instance, executed
           } }