실행 길이 인코딩 된 Brainfuck, 49 바이트
Brainfuck에는 변수가 없으므로 표준 입력 및 출력을 대신 사용했습니다.
32+
인터프리터는 코드 를 32 +
초로 해석해야합니다 . 통역사가 RLE를 지원하지 않는 경우 수동으로 교체하십시오.
>,[32->+<[16-<[>++<-]>[<+>-]>-<]>[<<.[-]>>-]<,]<.
확장 (RLE 이외) 버전 : (91 바이트)
>,[-------------------------------->+<[----------------<[>++<-]>[<+>-]>-<]>[<<.[-]>>-]<,]<.
이 코드는 EOF가 0으로 인코딩 된 것으로 가정합니다.
설명
다음과 같은 레이아웃이 사용됩니다.
+---+---+------+
| x | a | flag |
+---+---+------+
x
인쇄 될 ASCII 바이트는 어디에 있고 a
표준 입력의 문자 이며 공백 인 flag
경우 1 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