Uzunluk Kodlanmış Brainfuck, 49 bayt çalıştırın
Brainfuck'ta değişken olmadığından, bunun yerine sadece standart girdi ve çıktı kullandım.
Kod 32+
tercüman tarafından 32 +
sn olarak yorumlanmalıdır. Tercümanınız RLE'yi desteklemiyorsa, sadece bunları manuel olarak değiştirin.
>,[32->+<[16-<[>++<-]>[<+>-]>-<]>[<<.[-]>>-]<,]<.
Genişletilmiş (RLE olmayan) sürüm: (91 bayt)
>,[-------------------------------->+<[----------------<[>++<-]>[<+>-]>-<]>[<<.[-]>>-]<,]<.
Kod, EOF'nin 0 olarak kodlandığını varsayar.
açıklama
Aşağıdaki düzen kullanılır:
+---+---+------+
| x | a | flag |
+---+---+------+
x
Yazdırılacak ASCII baytı nerede a
standart girdiden bir karakterdir ve flag
boşluksa 1'dir a
.
>, 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