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.
Revaver16
This is a work in progress. It is not yet complete.
In this programming language, every command is a reverse of itself, so entering a command twice in a row is like a NOP. If you reverse the order of all the lines in the file and give the output of the first program as this program's input, you will get back the original input.
Commands are in a file, one in each line. First, give the input list. The output list is returned. A list entry is 2 bytes, no immediate duplicates like (1,2)(1,2). Main List, Intermediate List, all others Memory Lists (and a infinitely-long number for each).
These symbols can be used in place of numbers:
- ! = First by
Commands:
- (TR) TERMINATE: If Inter.List and all Mem.Lists are empty, end program.
- (PP) PUSHPOP a b: Pushes (a,b) onto Main.List. If (a,b) is already on top, pops instead.
- (MP) MEMPOINTER a b: If intdiv(p+a,b) (rounding down) is even, increase pointer by 'b', otherwise decrease. (If b=0, assume b=256)
- (SI) SWAPING: Swaps Main.List with Inter.List.
- (SM) SWAPMEM a: Swaps Main.List with Mem.List(p+a).