TapeBagel

From Esolang
Jump to navigation Jump to search

TapeBagel is an esoteric programming language that uses an integer array of three integers to make up most of the commands and operators. It was made by S. R. Farmer in May, 2006, a full time SDK is currently in the works. The commands and operators consist of two to seven special characters such as the pound sign etc. The first character or set of characters tells which class the operator is in. The second character or set of characters will have another character telling which command or operator in that class (see below).


Classes

Command Classes

% - deals with the integer index

# - deals with all of the integers

& - deals with miscellaneous commands

Operator Classes

& - deals with multiplication

+ - deals with addition

$ - deals with division

- - deals with subtraction

@ - deals with outputting text

* - deals with integer 0

** - deals with integer 1

*** - deals with integer 2

^ - deals with powers


Commands

%# - adds one to the integer index

%% - resets the integer index to zero

%& - the integer that the integer index is pointing to is inputted into the program

#% - sets all of the integers to one

## - resets all of the integers to zero

&& - pauses the program

&@ - clears the screen

%++ - adds one to the integer that the integer index is pointing to

Operators

* - integer 0

** - integer 1

*** - integer 2

[int]&[int] - integer * integer

[int]+[int] - integer + integer

[int]$[int] - integer / integer

[int]-[int] - integer - integer

@[int] - outputs the integer as a character (1 = A, 2 = B, ... 26 = Z)

@@[int] - outputs the integer as an integer


Example Programs

Hello, World!

This code outputs HELLO WORLD.

%% %++ %++ %++ %++ %++ %++ %++ %++ @* ## %++ %++ %++ %++ %++ @* ## %++
%++ %++ %++ %++ %++ %++ %++ %++ %++ %++ %++ @* @* ## %++ %++ %++ %++
%++ %++ %++ %++ %++ %++ %++ %++ %++ %++ %++ @* ## @* %++ %++ %++ %++
%++ %++ %++ %++ %++ %++ %++ %++ %++ %++ %++ %++ %++ %++ %++ %++ %++
%++ %++ @* ## %++ %++ %++ %++ %++ %++ %++ %++ %++ %++ %++ %++ %++
%++ %++ @* ## %++ %++ %++ %++ %++ %++ %++ %++ %++ %++ %++ %++ %++
%++ %++ %++ %++ %++ @* ##  %++ %++ %++ %++ %++ %++ %++ %++ %++ %++
%++ %++ @* ## %++ %++ %++ %++ @* ##

Implementations

An attempt, extrapolating from this incomplete spec, by Oren Watson.