Programs written in Arrows are saved with file extension .arws and consist of 26 columns and an unlimited amount of rows. Each column contains one unicode arrow character, and columns may be separated by whitespace (which is removed from the program during execution)
An arrows program consists of multiple "streams" of binary data that follow the course of arrows throughout the grid. Each stream can hold a different amount of bits, usually corresponding to the number of arrows in a single character (i.e.
← holds one bit and
⇐ holds two).
Commands & Symbols
↙transfer one bit of data from the base of the arrow to the tip.
↛invert the value of the bit they transfer.
↻transfer 0 and 1 (respectively) one space in all directions.
⇙transfer two bits of data from the base of the arrow to the tip.
⤚split bigger streams into smaller ones
⥥transfer any number of bits to the program output.
- Merge two 1 bit streams into a single 2 bit stream (and vice versa):
↺ ↓ →⥤ ⇒⇒⇒⇒⤙ ↑ →⥤ ↻
Note: The above program outputs "01" (the top and/or left of the program gets "priority" over the other directions)
- List of arrows - https://www.toptal.com/designers/htmlarrows/arrows/