Deadfish 는 네 가지 명령이있는 농담 "프로그래밍 언어"입니다. Esolang 페이지는 약간 모순되며 해당 페이지의 인터프리터가 모두 동일하게 작동하지 않으므로 다음 변형을 구현해야합니다.
사양
- 최소 16 비트 크기 의 누산기가 있으며 더 많이 허용되지만 더 적습니다. 음수는 지원할 필요가 없습니다. 누산기는
0
프로그램이 시작될 때입니다. - 다음 두 가지 네 가지 명령 세트가 있으며 프로그램은 동시에 두 가지를 모두 지원해야합니다.
표준 데드 피쉬 │ XKCD 변형 │ 의미 ──────────────────────┼───────────────────┼────────── ───────────────────────────── i │ x │ 증분 누산기 d │ d │ 누산기 s │ k │ 제곱 (acc = acc * acc) o │ c │ 출력 누산기 (숫자)
- 명령을 실행 한 후 누산기가
-1
또는256
이면 누산기가 0으로 재설정되어야합니다. 이것은 일반적인 랩 어라운드가 아닙니다. 예를 들어, 누산기가20
이고s
명령이 실행되면 누산기가400
이후에 있어야합니다 . 마찬가지로 누산기가257
있고d
명령이 실행되면 누산기가0
됩니다. - 이러한 명령 중 하나가 아닌 입력은 무시해야합니다.
테스트 프로그램
xiskso
출력해야합니다0
xiskisc
출력해야합니다289
I / O
프로그램에 프롬프트가 표시되어야합니다 >>
.. 프롬프트는 새 줄의 시작 부분에 있어야합니다. 그런 다음 한 줄의 사용자 입력을 읽고 주어진 명령을 왼쪽에서 오른쪽으로 실행해야합니다. 숫자를 출력 할 때는 숫자를 구분해야합니다. 즉, 12 34
OK, 12,34
OK입니다.
12
34
괜찮지 만 1234
그렇지 않습니다.
프로그램은 최소한 EOF
도달 할 때까지 루프에서이 작업을 계속 수행해야합니다 .
세션 예 :
>> xiskso
0
>> xiskisc
289
>> ddddo ddddo
285
281
>> ddddo ddddo
277
273
>> dddddddo
266
>> dddddddddo
257
>> do
0
>> do
0
>> io
1
>>
#{STDIN.gets}
작동 할 것이라고 생각 했지만 실제로는 작동하지 않습니다.