Velocityfuck

From Esolang
Jump to navigation Jump to search

Creator and Name

Velocityfuck is an esoteric language created by User:Esolang1. The difference from brainfuck is that the pointer can gain velocity, and it will move even when another instruction is being executed. (E1-0003)

Code

As written, the pointer can gain velocity. The initial velocity is set to 0, and then when '<' or '>' is executed, the velocity will increase or decrease. On each instruction execution, the pointer will move velocity amount of times to the right, and then execute the instruction.

Instructions

   >    Increment the pointer velocity
   <    Decrement the pointer velocity
   +    Increment the memory cell at the pointer
   -    Decrement the memory cell at the pointer
   .    Output the character signified by the cell at the pointer
   ,    Input a character and store it in the cell at the pointer
   [    Jump past the matching ']' if the cell at the pointer is 0
   ]    Jump back to the matching '[' if the cell at the pointer is nonzero
   ~    No operation, used for moving the pointer without changing anything else

I/O

The '.', ',' instructions work same as in brainfuck.

Examples

Behavior

   >+>->+

The memory and the pointer velocity will change according to the following when the code is executed. Pointer velocity is denoted with pv.

   > | pv = 1, mem = 000000000000...
     |               ^
   + | pv = 1, mem = 010000000000...
     |                ^
   > | pv = 2, mem = 010000000000...
     |                 ^
   - | pv = 2, mem = 010000000000...
     |                   ^
   > | pv = 3, mem = 010000000000...
     |                     ^
   + | pv = 3, mem = 010000000100...
                              ^