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.

Эзотерикалық мысық

From Esolang
Jump to navigation Jump to search

Эзотерикалық мысық ("esoteric cat" when translated from kazakh) is an esoteric programming language by User:Dragoneater67.

Overview

The first line of the program is a sequence of cell values where each character represents a cell, the sequence tiles the infinite tape. The second line of the program is a sequence of instructions that are executed left-to-right in an implicit infinite loop.

Эзотерикалық мысық instruction table
Instruction Description
> Move tape head right.
< Move tape head left.
/ Swap the cell at the tape head with the cell right of the tape head.
\ If the cell at the tape head is equal to the cell right of the tape head, skip past next occurence of \ (if search reaches program end, wrap around to program start).
. Output the cell at the tape head.

Reformulation using a boolean "skip" and reversiblity proof

We can define a boolean skip, initially false, then instructions would look like:

Instruction Description
> Move tape head right if skip is false.
< Move tape head left if skip is false.
/ Swap the cell at the tape head with the cell right to the tape head if skip is false.
\ Toggle skip if the cell at the tape head is equal to the cell right to the tape head.
. Output the cell at the tape head if skip is false.

We can thus prove it is reversible:

When running the program backwards:
Instruction Description
> Move tape head left if skip is false.
< Move tape head right if skip is false.
/ Swap the cell at the tape head with the cell right to the tape head if skip is false.
\ Toggle skip if the cell at the tape head is equal to the cell right to the tape head.

Minimization

> and / can be merged into a single command } which is equivalent to />. Any Эзотерикалық мысық program can be converted into this minimization by replacing every / with }<, and every > with }<}.

Examples

The kids choice awards

slime
.>

See also