나는 esolangs를 탐색하고,이 언어에 우연히되었다 https://github.com/catseye/Quylthulg .
이 언어에 대한 흥미로운 점은 접두사, 접미사 또는 접두사를 사용하지 않고 "panfix"표기법이라고하는 세 가지를 모두 사용한다는 것 입니다.
다음은 예입니다. 1+2
panfix에서 일반 접두사 를 나타내려면 다음과 같이됩니다 +1+2+
. 연산자가 피연산자 앞, 뒤 및 뒤에 어떻게 있는지 확인하십시오. 또 다른 예는 (1+2)*3
입니다. 이됩니다 *+1+2+*3*
. 공지 사항을 다시 방법 *
피연산자에 대한 세 가지 장소에 +1+2+
와 3
.
도전
짐작 하셨겠지만이 과제의 과제는 표현식을 접두사에서 접두사로 변환하는 것입니다.
몇 가지 설명 :
- 네 가지 기본 작업 만 처리하면됩니다.
+-*/
- 단항 버전을 다룰 필요가 없으며 바이너리 만 처리해야합니다.
- 괄호를 다루어야합니다
*/
그때 의 일반적인 우선 순위 규칙을 가정하고+-
모든 규칙에 대해 왼쪽 연관성을 가정하십시오 .- 숫자는 음이 아닌 정수입니다.
- 선택적으로 입력과 출력 모두에 공백이있을 수 있습니다
테스트 사례
1+2 -> +1+2+
1+2+3 -> ++1+2++3+
(1+2)*3 -> *+1+2+*3*
10/2*5 -> */10/2/*5*
(5+3)*((9+18)/4-1) -> *+5+3+*-/+9+18+/4/-1-*
이것은 code-golf 이므로 바이트 단위의 가장 짧은 코드가 이깁니다!
S.split``
해야[...S]
실제로 도움에 맞게 수 있지만,/\d+|./g
그 대신에 선행 작업을.