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.

INDIGO

From Esolang
Jump to navigation Jump to search

INDIGO is an esolang created as it was named after its 6 primary concepts: Increment, Next, Define, If, Goto, and Output. The language was inspired by Lisp, though it has many different features.

Syntax

Any INDIGO program will always have a bracket-based syntax, similar to Lisp. However, the commands are different, there are no lists, and the source code remains uneditable. The only variable types are integers, arrays, and characters.

Features

INDIGO
Function Arguments + Action
def name, args : define function
set cond, block : set variable
inc var : increment
dec var : decrement
add var, var : add (also can be +)
sub var, var : subtract (also can be -)
mul var, var : multiply (also can be *)
div var, var : divide (also can be /)
mod var, var : modulo (also can be %)
con cond, block : conditional
whi cond, block : while
pri var : print
inp var : place input in
got name, args : goto
nex var : next (can either inc or dec, depending on where var is relative to number in condition)
hal var/int : halt with value

Examples

Hello World

(pri "Hello world!"
hal 0)

Fizzbuzz

(set x 1
whi (< x 100) (
   con (= (% x 3) 0) (
     pri "Fizz")
   con (= (% x 5) 0) (
     pri "Buzz")
   con (= & (= (% x 5) 0) (= (% x 3) 0) F) (
     pri x)
   nex x)
hal x)