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.

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_