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.
Spielen
spielen (stylised all-lowercase) is an APL-inspired symbolic programming language intended for golfing. It, however, avoids the usage of cheating commands to do full tasks just for you or the use of Unicode. spielen also is a functional language, like APL, but unlike it, spielen uses only 3 data types: the array, integer, and character.
Etymology
spielen is the German word for play, which is the opposite of what you do when coding in spielen. The language is also known as Symbolic Programming Language, or SPL - the word spielen was chosen as it has the letters SPL in the word, and the author is learning German.
Syntax
In the case of a mono-argument function, post-fix syntax is used, but in the case of a bi-argument function, infix syntax is used. All variables are lowercase and are given types based on how they were defined.
Characters
Mono-Argument Functions
| Character | Action | ||
|---|---|---|---|
| : | Increment | ||
| ; | Decrement | ||
| < | |||
| > | Input | ||
| # | Define as Integer | ||
| ' | Define as Character | ||
| = | Define as Integer Array | ||
| " | - | . | While-ify if block. |
| ~ | Logical NOT. | ||
| ? | Random integer between 1 and n and put in n. | ||
| ! | While-ify if block. | ||
| + | Else. | ||
| . | Halt with value. |
Bi-Argument Functions
| Character | Action |
|---|---|
| + | Add |
| - | Subtract |
| Multiply | |
| / | Divide |
| # | Define as Integer with value |
| ' | Define as Character with value |
| = | Define as Integer Array with value |
| " | Define as Character Array with value |
| & | Logical AND. |
| ^ | Logical OR. |
| $ | Logical XOR. |
| % | Modulo. |
| ^ | Exponent. |
| > | Compare variable with number. If over, execute block surrounded with brackets. |
| < | Compare variable with number. If under, execute block surrounded with brackets. |
| , | Compare variable with number. If equal, execute block surrounded with brackets. |
Examples
Hello World
<"Hello world!".0
Fizzbuzz
x#0!x<100(x%15,0(>"Fizzbuzz")+(x%3,0(>"Fizz")+(x%5,0(>"Buzz"))+(>x)):x).x
Fun Video Game
#x#y+(x,y(>y:x))<"Failure.".x