Assignless

From Esolang
Jump to navigation Jump to search
This language is still undergoing design. It may, and will, probably change in the future.

Assignless is a work in progress esoteric programming language by User:Rdococ.

Overview

Assignless is an esoteric programming language without assignments. Rather, you must pass modified values to subroutines.

void loop(int step, int input) {
     printf("Step %d.\n", step);
     if(step < input)
          loop(step + 1, input); # We (automatic) return here to take advantage of tail call optimization.
}

int main() {
     loop(1, inputf("How many steps?: %d\n")); # yep, this is input.
     return 0;
}

This program lists all of the entries in an input array. Note how nowhere is a variable technically assigned by the programmer, not even in a for loop. Rather, each subroutine in the program must pass modified values onto another subroutine in order to assign variables - perhaps using some form of recursion, too. This is the basic premise of the language.