Jalankan Panjang Encoded Brainfuck, 49 byte
Karena tidak ada variabel di Brainfuck, saya hanya menggunakan input dan output standar saja.
Kode 32+
harus ditafsirkan sebagai 32 +
detik oleh penerjemah. Ganti saja secara manual jika juru bahasa Anda tidak mendukung RLE.
>,[32->+<[16-<[>++<-]>[<+>-]>-<]>[<<.[-]>>-]<,]<.
Versi yang diperluas (non-RLE): (91 byte)
>,[-------------------------------->+<[----------------<[>++<-]>[<+>-]>-<]>[<<.[-]>>-]<,]<.
Kode mengasumsikan bahwa EOF dikodekan sebagai 0.
Penjelasan
Tata letak berikut digunakan:
+---+---+------+
| x | a | flag |
+---+---+------+
Di mana x
byte ASCII yang akan dicetak, a
adalah karakter dari input standar dan flag
1 jika a
adalah spasi.
>, Read a character a into the second cell
[ While not EOF:
32- Decrease a by 32 (a -= ' ')
>+< Set the flag to 1
[ If a was not a space:
16- Decrease by 16 more ('0' == 32+16)
<[>++<-] a += 2*x
>[<+>-] Move it back (x = a)
>-< Reset the flag, it was not a space.
]>
[ If a was a space (flag == 1):
<<.[-] Print and reset x
>>- Reset the flag
]
<, Read the next caracter a
]
<. Print the last character x