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.

History (programming language)

From Esolang
Jump to navigation Jump to search
Not to be confused with Timeline of esoteric programming languages.

History is a joke programming language invented by User:A that depends on the History data structure, an esoteric data structure inspired by queues that cannot delete anything.

The History data structure

Its behavior is very simplar to a queue. There are 2 primary operations: UPDATE, and INSERT.

The following table explains them, and shows how to implement them in History.

op meaning
UPDATE X Update the current number as X, and put the previous "current number" into history.
INSERT X Insert the backmost item to the index between index X and index X+1 without deleting the backmost item.
TOP X Insert the top item to the index between X and X+1 without deleting the item.
ONSERT X Put position X onto the top of the history without deleting the item.

An example session of History

HISTORY:
COMMAND: UPDATE 1
HISTORY:
    @UPDATE #1 is 1
COMMAND: UPDATE 2
HISTORY:
    @UPDATE #2 is 2
    @UPDATE #1 is 1
COMMAND: INSERT 2
HISTORY:
    @UPDATE #3 is 1
    @UPDATE #2 is 2
    @UPDATE #1 is 1
COMMAND: BYE

Computational class

It is not Turing-complete, of course. (It cannot execute an infinite loop, or even any sort of conditional statement.)