RedefineFuck

From Esolang
Jump to navigation Jump to search

RedefineFuck is brainfuck but you need to redefine symbols to run loops, if statements, etc.

Instructions

There are 5 instructions and 6 symbols. whitespaces are ignored, cAsE SeNsItIvE.

Initial instructions

Instructions
instruction meaning brainf**k rough equalivant
@ increase 1 +
[ data pointer goes right >
&x&...* (re)define x to be ... then ptr left None
] if x==0 skip else x-=1 [->->++<]>>[-<<+>>]<<[[-]>-x<][-<+>]<
$ input if x==0 else output x-1 >[-]<[>+<-.[-]]>[<,>-]<

Instruction name can NOT contain any of the initial instructions. Brackets should match, or a @ have a 1% chance to fail.

Computational level

Turing-complete.

BF to RF
BF RF Notes
+ @
- &-&*[]-
> [
< &!&*
[...] &_&*[&a&@...]a_*]a_ 'a' is a placeholder, each symbol should be different
, &_&*[&a&@&-&*[]-]a_*]a_$
. @$&-&*[]-

Example(s)

Hello, World! (using wraps on 256)

@&_&*[&a&@&-&*[]-&-&*[]-[&-&*[]-&_&*[&a&@[[@[&-&*[]-&-&*[]-&-&*[]-&-&*[]-&-
&*[]-&!&*&!&*]a_*]a_&!&*&-&*[]-&-&*[]-&!&*&-&*[]-&-&*[]-&-&*[]-]a_*]a_[&-&*
[]-@$&-&*[]-[[[@@$&-&*[]-[[@$&-&*[]-@$&-&*[]-@@@&_&*[&a&@@$&-&*[]-[]a_*]a_&
!&*&!&*&!&*&!&*@$&-&*[]-@@@@$&-&*[]-&-&*[]-&-&*[]-&-&*[]-&-&*[]-&-&*[]-&-&*
[]-@$&-&*[]-&!&*&!&*&-&*[]-@$&-&*[]-[[[[@@$&-&*[]-]-]-]-]-]-]-]-]-]-]-]-]--

Cat, eof returns 0

[[[[@&_&*>&a&@&_&*>&b&@&-&*[]-]b_*]b-$@$&-&*[]-]a_*]a_

Looping counter

@&_&*[&a&@[[&_&*[&r&@[]r_*]r_@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&_&*
[&r&@&!&*]r_*]r_[&_&*[&r&@@$&-&*[]-[]r_*]r_@@@@@@@@@@@$&-&*[]-&-&*[]-&-&*[]
-&-&*[]-&-&*[]-&-&*[]-&-&*[]-&-&*[]-&-&*[]-&-&*[]-&-&*[]-&!&*&_&*[&r&@&!&*]
r_*]r_&!&*]a_*]a_