Jolf

From Esolang
Jump to navigation Jump to 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.

Quine

Cheating variant:

q

q is the programs source code.

Proper quine:

Q«Q«

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

Regular variants:

1
5
"e" // with pretty printing enabled

Cat

For one item:

i

Takes input, implicit output.

For an arbitrary amount of items:

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