난해한 언어 골프를 충분히 얻을 수 없기 때문에 할 수 있습니까?
/// — 슬래시 로 발음 — s///
은 Perl 명성 의 정규식 대체 기능을 기반으로하는 재미있는 언어 입니다. 슬래시 /
와 백 슬래시 두 개의 특수 문자 만 포함합니다 \
. esolangs wiki 에서 전체 기사를 찾을 수 있지만 아래 언어에 대한 설명과 예제를 재현 할 것입니다.
즉, /pattern/repl/rest
프로그램에서 식별 하고 가능한 한 많이 대체하여 작동 합니다. 특수 문자는 다음을 제외 /
하고 없습니다 \
. : /
프로그램에서 패턴과 대체 문자를 구분하고 코드에 \
문자 /
나 \
문자 를 삽입 할 수 있습니다 . 특히, 이들은 정규 표현식이 아니라 일반 문자열 대체입니다.
당신의 도전 은 /// 언어에 대한 통역을 생산하는 것입니다 가능한 한 적은 수의 문자로 STDIN 또는 문자열 인수를 복용 함수에서 읽기 중 하나 프로그램으로.
/// 자체를 제외한 모든 언어를 사용할 수 있습니다. ///;을 해석하는 라이브러리를 사용할 수 없습니다. 그러나 정규식, 정규식 라이브러리 또는 문자열 일치 라이브러리를 사용할 수 있습니다.
실행
네 가지 상태가있다 인쇄 , 패턴 , 교체 및 대체 . 대체를 제외한 모든 주에서 :
- 프로그램이 비어 있으면 실행이 중지됩니다.
- 그렇지 않으면 첫 번째 문자가
\
인 경우 다음 문자 (있는 경우)로 무언가를 수행하고 프로그램에서 두 문자를 모두 제거하십시오. - 그렇지 않으면 첫 번째 문자가 인
/
경우 제거하고 다음 상태로 변경하십시오. - 그렇지 않으면 첫 번째 문자로 무언가를하고 프로그램에서 제거하십시오.
- 반복.
는 순환 상태 인쇄 , 패턴 , 교체 및 대체를 위해.
- 에서 인쇄 모드, 문자 수단의 출력 '뭔가를'.
- 에서 패턴 모드, 수단 현재 패턴에 문자를 추가 '뭔가 할'.
- 에서 교체 모드, 수단 현재 교체에 문자를 추가 '뭔가 할'.
대체 모드 에서는 다른 규칙 세트를 따릅니다. 더 이상 대체가 불가능할 때까지 현재 패턴의 첫 번째 발생을 프로그램의 현재 대체로 반복해서 대체하십시오. 이 시점에서 패턴 및 교체를 지우고 인쇄 모드로 돌아갑니다 .
프로그램 /foo/foobar/foo foo foo
에서 다음이 발생합니다.
/foo/foobar/foo foo foo
foo foo foo
foobar foo foo
foobarbar foo foo
foobarbarbar foo foo
...
이것은 영원히 반복되며 대체 모드를 종료하지 않습니다 . 마찬가지로, 패턴이 비어있는 경우 프로그램 시작시 비어있는 문자열이 처음 나타나는 경우 항상 일치하므로 대체 모드는 영원히 반복되며 중단되지 않습니다.
예
no
출력 : no
.
/ world! world!/Hello,/ world! world! world!
출력 : Hello, world!
.
/foo/Hello, world!//B\/\\R/foo/B/\R
출력 : Hello, world!
.
a/ab/bbaa/abb
출력 : a
. 프로그램이 중단되지 않습니다.
//
출력 : 없음
///
출력 : 없음 프로그램이 중단되지 않습니다.
/\\/good/\/
출력 : good
.
당신이 시도 할 수 있는 위키에 quine가 있습니다 .
///
내가 만드는 IDE 에서이 정보를 사용할 것입니다 !
/-/World//--/Hello//--W/--, w/---!
무엇을 사랑하지거야? (끝에서 대시를 제거해보십시오)