역 따옴표-퀸


29

이 도전의 전망은 다음과 같습니다.

  • 프로그램이 정상적으로 실행되면 음성 표시 ( "-큰 따옴표)의 모든 코드 가 인쇄되어야합니다.
  • 프로그램이 큰 따옴표로 묶인 경우 (음성 부호를 뒤집 음) 일반적으로 따옴표가 아닌 코드를 인쇄해야합니다.

예 :

다음 코드가 있다고 가정 해 봅시다.

fancyStuff("myCode"); "I like".isGreat();

내가 실행하면 다음과 같은 결과가 나옵니다.

myCode
I like

그러나 따옴표로 묶으면 다음과 같이됩니다.

"fancyStuff("myCode"); "I like".isGreat();"

이 코드가 실행될 때 예상되는 결과는 다음과 같습니다.

fancyStuff(
); 
.isGreat();

분명히 위의 예는 어떤 언어로도 기능적인 응답이 아닙니다. 당신의 임무는 이런 식으로 수행하는 코드를 작성하는 것입니다.

규칙

  • 표준 허점이 적용됩니다.
  • 따옴표와 따옴표가없는 형태로 인쇄 된 값은 비어 있지 않거나 공백만으로 구성되어야합니다. 이것은 또한 모든 프로그램이 적어도 하나의 인용 부호를 포함해야 함을 의미합니다.
  • 그러나 후행 / 앞의 공백은 허용됩니다.
  • 자신의 코드, 필요한 파일 이름 등을 보지 마십시오.
  • 일치하지 않는 따옴표는 허용되지 않습니다
  • 문자열이 여러 개인 경우 개행으로 인쇄하거나 (예와 같이) 다른 사람이 읽을 수있는 방식으로 배열이나 객체를 인쇄 할 수 없습니다
  • 이것은 이므로 바이트 단위의 최단 답변이 이깁니다.

일치하지 않는 따옴표를 사용할 수 있습니까? 그렇다면 어떻게 처리해야합니까?
7

3
@GezaKerecsenyi 그렇다면 구분 기호가 필요합니까, 아니면 단순히 문자열을 연결할 수 있습니까?
아웃 골퍼 에릭

9
어떻게 배열입니다 없는 사람이 읽을 수있는 형식은?
밀 마법사

4
코드에 표시된 순서대로 문자열을 출력해야합니까?
얽히고 설킨

1
인용 부호 에 없는 내용 을 인쇄해야한다면이 작업이 약간 더 복잡했을 것 입니다.
Jo King

답변:


28

파이썬 2 , 20 바이트

print";print'print'"

tsh 덕분에 -7 바이트

온라인으로 사용해보십시오!


이전 답변 :

파이썬 2 , 27 바이트

'';print";print 2*"'';print

온라인으로 사용해보십시오!

이 답변 뒤에 생각의 기차 :

무언가 를 인쇄해야하기 때문에 간단한 인쇄로 시작하십시오 .

print"a"

우리는 또한 거꾸로 된 경우, 즉 무언가를 인쇄해야합니다. 따옴표 안에 인쇄하십시오.

print"print"

비 반전 케이스는이 시점에서 꽤 좋습니다. 거꾸로 된 사건에 초점을 맞추자. 이제 문자열로 시작 print하는데, 바로 뒤에 print 문을 사용할 수 없습니다. 이것을 세미콜론으로 수정 해 봅시다.

print";print"

좋은 물건. 단, 반전 된 코드는 실제로 아무것도 인쇄하지 않습니다. 우리는 print따옴표로 끝나기 때문에 시작 부분 에 인쇄해야 하지만, 따옴표로 끝나기 때문에 두 번째 따옴표 뒤에 오는 것을 인쇄해야합니다. 이 문제를 해결하는 확실한 방법 print은 마지막 문자열에 2를 곱하고 곱하는 것입니다.

print";print 2*"print

이제 거꾸로 된 코드는 정상적으로 작동하지만 첫 번째 따옴표 앞의 섹션과 두 번째 따옴표 다음의 섹션은 향후 변경 전체에서 동일하게 유지되어야한다는 사실에주의해야합니다. 반전되지 않은 코드의 경우 구문 오류가 발생합니다. 다시 한 번, 표현식을 구분하기 위해 세미콜론을 도입해야합니다.

;print";print 2*";print

파이썬은 그 고독한 세미콜론의 모습을 정말로 좋아하지 않으므로 첫 번째 세미콜론과 마지막 세미콜론 앞에 삽입 된 두 개의 동일한 no-op 표현으로 뱀의 굶주림을 만족시켜야합니다. 대부분의 표현식은 첫 번째 경우에는 잘 작동하지만 두 번째 경우에는 print";print 2*"아무 것도 깨지 않고 반전되지 않은 코드를 따라야합니다 . 우리는 ''단순히 이전 문자열과 연결되는을 사용할 수 있습니다 .

'';print";print 2*"'';print

5
print(";print('print()');")또한 27 바이트, 파이썬 3입니다.
tsh

2
@tsh이 코드는 20 바이트 파이썬 2 솔루션을 보여줍니다.
7

19

CSS, 66 바이트

body:after{content:"{}body:after{content:'body:after{content:}'}"}

"body:after{content:"{}body:after{content:'body:after{content:}'}"}"

CSS로 많은 질문을 해결할 수는 없습니다 ...


body:after일부 구현에서도 작동하는 것 같습니다 .
Shieru Asakoto

@ShieruAsakoto 당신이 맞아요. :after이전 버전과의 호환성을 위해 대부분의 브라우저에서 사용할 수 있습니다
tsh

@Shaggy 그러나 HTML과 CSS가 모두 제공 될 때 "소스 코드를 따옴표로 묶는"작동 방식을 정의하기는 어렵습니다.
tsh

@tsh 괜찮습니다-고유 한 대답을 기대하지 않았기 때문에 규칙에 여러 파일을 지정하지 않았습니다!
Geza Kerecsenyi

10

HQ9 + [아래 참고 참조] , 1016 바이트

"Hello World """"""""""""""""""""""""""""""""""""""""""""""""" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" """" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" """" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" """" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" """" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" """" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" """" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" ""Hello World"" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" ""Hello World"" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" ""Hello World"" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "Hello World"" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "Hello World"" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "Hello World"" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "Hello World"" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" ""Hello World"" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" ""Hello World"" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" ""Hello World"" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" ""Hello World

https://esolangs.org/w/index.php?title=HQ9%2B&oldid=59995 의 구현을 사용하고 Windows에서 MinGW GCC 5.3.0으로 인터프리터를 컴파일하십시오. 프로그램을 종료하려면 정의되지 않은 C 동작이 필요하기 때문에 다른 버전의 컴파일러에서 작동하는지 확실하지 않습니다. 버퍼 길이는 1000 바이트입니다. 그리고 1000 바이트보다 큰 소스 코드가 트릭을 수행합니다. 어떻게 이런 일이 일어 났는지 모르겠습니다.


7
이 사이트에서 가장 긴 HQ9 + 답변 일 수 있습니다. (?)
tsh

1
"프로그램을 종료하려면 정의되지 않은 C 동작이 필요합니다."정의되지 않은 동작은 정의되어 있지 않습니다 . 무엇이든 할 수 있습니다.
Solomon Ucko

C18 표준의 4 페이지 에 따르면 "가능한 정의되지 않은 동작은 예측할 수없는 결과로 상황을 완전히 무시하는 것에서부터 환경의 문서화 된 방식으로 진단 또는 프로그램 실행 중 동작 (진단 메시지가 있거나없는 상태) ), 번역 또는 실행 종료 (진단 메시지 발행). "
Solomon Ucko

@SolomonUcko 그러나이 사이트의 컴파일러 / 인터프리터로 언어를 정의합니다. 적어도 하나의 컴파일러 / 인터프리터가 올바른 결과를 낼 수 있다면 대답은 괜찮습니다.
tsh

9

05AB1E , 4 바이트

"A"§

분리기없이 연결된 출력.

온라인으로 시도 하거나 따옴표로 온라인으로 시도하십시오 .

설명:

        # Program without surrounding quotes will output string "A"
"A"     # Push "A" to the stack
   §    # Cast it to a string
        # (output the top of the stack implicitly as result)

        # Program with surrounding quotes will output string "§"
""      # Push an empty string to the stack
  A     # Push the alphabet to the stack: "abcdefghijklmnopqrstuvwxyz"
   "§"  # Push "§" to the stack
        # (output the top of the stack implicitly as result)

불행히도 이것은 규칙 # 2를 위반합니다. 코드에 빈 따옴표를 사용하는 것이 좋지만 둘러싸여 있거나 둘러싸이지 않은 형태로 비어 있지 않은 따옴표가 하나 이상 있어야합니다.
Geza Kerecsenyi

@GezaKerecsenyi 죄송합니다 . " 따옴표가 붙은 인용 부호와 인용 부호가없는 형태로 " 부분을지나 읽으십시오 . 지금 수정해야합니다.
케빈 크루이 ssen

6

Japt , 4 바이트

"P"s

따옴표인용 부호로 시도하십시오

P빈 문자열에 대한 Japt 변수이고 s메소드는 문자열을 슬라이스합니다. 인수가 없으면 아무 것도 수행하지 않습니다.


또는, 아주 사소한 것 :

"+"u

따옴표인용 부호로 시도하십시오

첫 번째는 대문자 +이고 두 번째 u는 빈 문자열에 추가 합니다.


3
이 질문에 대한 최소 점수는 4가 가장 적다는 점에 유의하십시오.
조왕

5

C 번호 (카메라 C 번호 인터랙티브 컴파일러) , 113 (112) 107 70 64 바이트

Write(".f();static void f(this string s){Write(s+')'+';');}//");

@negative seven 덕분에 5 바이트 절약

인용 부호로 둘러싸이지 않은인용

잠시 후, 내 솔루션이 너무 복잡하다는 것을 깨달았습니다. 여기에 표시된 최신 프로그램은 따옴표로 묶을 때 오류가 발생하지 않도록 주석에서 나머지 프로그램을 숨 깁니다.

When wrapped in quotes, Write( is passed onto an extension method, which prints it along with );.


Split() -> Trim(), and var a -> _
negative seven

1
@negativeseven Thanks, I would of never thought of using a discard!
Embodiment of Ignorance

1
@negativeseven Actually, my solution didn't even need to be so complicated, look at my newest edit
Embodiment of Ignorance

64 bytes using an extension method. Pretty surprised this worked out so well!
negative seven

1
@negativeseven Thanks! And you gave me an idea for part two of the challenge: I was capturing the outside in a variable and then using Remove and Insert on it, now I can just use an extension method!
Embodiment of Ignorance

4

Perl 6, 11 bytes

say ".say~"

Try it online!

Prints .say~ with a trailing newline. Seems too easy. Am I missing something?

When wrapped in quotes, produces say with a space and trailing newline.


2
I don't think so. It's just that p6 let's you say (ha) say $foo and $foo.say which makes it a lot easier.
user0721090601

4

Foo, 4 bytes

"P"s

Try it online! Also works in Japt.

5 bytes (UTF-8)

"A"§

Try it online! Also works in 05AB1E.

9 bytes

"!""$;"$;

Try it online! Also works in Runic Enchantments.

11 bytes

say ".say~"

Try it online! Also works in Perl 6.

20 bytes

print";print'print'"

Try it online! Also works in Python 2.

69 bytes

body::after{content:"{}body::after{content:'body::after{content:}'}"}

Try it online! Also works in CSS.

Hmm... Foo is a highly adaptable language.


"Hmm... Foo is a highly adaptable language." For anyone who don't know Foo: everything within double-quotes is output and everything else (except for a few other builtin-characters) are no-ops. "The perfect language for the job" is an understatement here. ;)
Kevin Cruijssen

2
So, basically, just rip off every other solution to this challenge?!
Shaggy

@Shaggy The language is Foo. Almost everything with at least a pair of quotes and both expected output non-empty works in Foo in this challenge. So "a"b 1"2" also works in Foo. The only answer in this challenge that is not a Foo polyglot so far is in HQ9+, because the Foo interpreter also has the overflowing problem.
jimmy23013

4

><>, 18 9 bytes

"|o<"r>o|

-9 bytes thanks to Jo King

Try it online! (quoted)

Explanation

"|o<"r>o|
"|o<"     Pushes the quoted characters onto the stack
     r    Reverses the stack
      >o| Outputs all characters on stack & errors
""|o<"r>o|"
""          No-op
  |         Reverses the IP direction
     "r>o|" Pushes the quoted characters onto the stack (backwards)
  |o<       Outputs all characters on stack & errors

5
Welcome to Code Golf!
Stephen

@Stephen Thanks!
tjjfvi


2

Runic Enchantments, 9 bytes

"!""$;"$;

Try it online! and ""!""$;"$;"

From Kevin Cruijssen, who essentially fixed my first attempt utilizing what I did in my second.

Going down the "fungoids never have unmatched quotes" rule-bending "there's something about this that shouldn't be OK" route, alluded to in my own comment:

7 bytes

0".""$;

Try it online! and "0".""$;"

Under normal circumstances, this program executes as 0".""$;0".""$; pushing an integer 0, then the string ., concatenates $;0, NOP, concatenates an empty string, prints top-of-stack (the string .$;0) and terminates. Wrapping it in quotes produces "0".""$;" which pushes a string-0, NOPs, concatenates an empty string, prints top-of-stack, and terminates (rendering the previously un-printed integer 0 in string form). The last " is left unexecuted (and not part of the original program anyway).

Fungoids don't have string literals, they have a command that toggles "read own source as a string" mode and some form of "instruction pointer has reached the source boundary" rule (usually edge-wrap), so the same source-code-positional-byte acts as both "begin string" and "end string" instruction, creating a string literal of that entire row/column (excluding the " itself).


Super quick answer! I'm just wondering if I misunderstood something about your submission, but for me it doesn't print the $; at the end in the quoted version.
Geza Kerecsenyi

I realized that upon re-reading and am trying to puzzle out if runic can ever execute that bit. Starting to investigate "unpaired" quotes now; e.g "$; and ""$;" (Runic wrap-around quotes pairing with themselves).
Draco18s

@GezaKerecsenyi Let me know if my updated program violates any rules.
Draco18s

Umm.. How is this valid? Your program without quotes output !. (which is correct), but shouldn't your program with quotes output 0$;? PS: I don't know Runic Enchantments at all, but a potential fix based on your current layout which I think is valid would be 0"!""$;"$; (which outputs !$; as is, or outputs 0$; if surrounded with quotes). EDIT: Actually, I think you can drop the 0 and output !$; and $;.
Kevin Cruijssen

1
@KevinCruijssen $ is "print top of stack" and ; terminates. But you essentially got a valid answer.
Draco18s






0

R, 16 bytes

 ";print(";");" 

Note that the above code is not wrapped in the additional quotation marks and has both leading and trailing spaces.

Try it (non-wrapped version)


You may want to add a note that the linked program is the non-wrapped version.
Jonathan Frech

I would also add a note about the leading and trailing spaces. It's hard to notice them otherwise.
mbomb007

Edited, thanks for the suggestions!
James Otto

0

AppleScript, 9 bytes

return"&"

Explained:

return"&"    -- returns "&"

Quoted:

"return"&""  -- implied return of the string "return" concatenated with ""
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.