프로그래밍 이분법 (말 그대로)


33

대답이 'and'로 분리 될 수있는 두 개의 합리적으로 정확한 (그러나 잠재적으로 영리한) 단어 나 구를 포함하는 일반 영어로 작성된 질문을 고려하십시오.

Q : 동전의 양면은 무엇입니까? A : 머리와 꼬리

Q : 여행하는 가장 좋은 방법은 무엇입니까? A : 비행기와 제트 팩

Q : 까마귀가 책상과 같은 이유는 무엇입니까? A : 둘 다에 'b'가 있고 둘 다에 'n'이 없기 때문에

정상적으로 실행될 때 그러한 질문을 출력하는 프로그램을 작성하십시오.

두 번째 문자로 시작하여 프로그램에서 다른 모든 문자가 제거되고 결과가 다시 실행되면 결과는 답에서 'and' 의 왼쪽 에 있어야합니다 .

첫 번째 문자로 시작하여 프로그램에서 다른 모든 문자가 제거되고 결과가 다시 실행되면 출력은 답에서 'and' 의 오른쪽 에 있어야합니다 .

( 'and'자체는 출력되지 않습니다.)

프로그램이

A1B2C3D4E5F6G7H8I9

그리고 그 출력은

What are the two sides of a coin?

그런 다음의 출력은 ABCDEFGHI이어야 heads하고의 출력은 123456789이어야합니다 tails.

질문과 답변에 관한 규칙

  • 당신은 나의 예시적인 질문들을 사용할 수 있지만, 나는 당신이 당신 자신의 것을 구성하도록 권장합니다.
  • 질문과 두 가지 답변 부분 :
    • 모두 분명해야한다
    • 문법적으로 의미가있는 영어 여야합니다
    • 인쇄 가능한 ASCII 만 포함 할 수 있습니다 (16 진수 20 ~ 7E)
  • 이상적으로 질문은 대문자로 표시되고 문장 부호가 표시됩니다 (그러나 답변이 반드시 필요한 것은 아닙니다).
  • 질문의 길이는 30 자 이상이어야하며 엔트로피 는 3.5 이상이어야합니다 . (문자열을 입력하고 계산 을 클릭하고 마지막 H (X)를 찾으십시오 .)
  • 두 답변 부분 ( [space]and[space]사이에 포함되지 않음 )은 각각 엔트로피가 2 이상인 5 자 이상이어야합니다.
  • '및'이라는 단어는 어느 부분 에나 나타날 수 있습니다.

코드에 대한 규칙

  • 3 개의 코드 스 니펫 중 어느 것도 다음을 수행 할 수 없습니다.
    • 주석 / 컴파일러 / 인터프리터가 전통적으로 무시한 내용을 포함합니다 (추가 세미콜론을 넣는 것에 대해 걱정할 필요는 없지만 의견이라고 생각되는 경우)
    • 실행 중 프로그램을 종료
  • 코드에는 유니 코드 및 인쇄 할 수없는 ASCII를 포함한 모든 문자가 포함될 수 있습니다.
  • 홀수 또는 짝수의 문자가있을 수 있습니다.
  • 출력은 stdout 또는 파일 또는 합리적인 것으로 보입니다. 입력이 없습니다.

채점

나는 골프 답변을 장려하고 싶지 않지만 영리한 답변을 더 장려하고 싶기 때문에 점수는 코드 골프와 인기 대회 사이에 있습니다.

점수 = (upvotes - downvotes) - floor((bytes in code that outputs question) / 3)

가장 높은 점수가 이깁니다.

( http://mothereff.in/byte-counter 를 바이트 카운터로 사용 하십시오 .)


6
Gah, 이것은 JavaScript와 같은 "일반적인"언어로하기에는 너무 어렵다. 내가 얻을 수있는 가장 먼 것은 x0=00;;입니다. 큰 도전!
Doorknob

@Doorknob 00;은 보트를 수축 시켜서 죄송하지만 전통적으로 컴파일러에 의해 무시됩니다.
John Dvorak

2
진심으로 ... "사과"의 Shannon 엔트로피는 1.92 ???
John Dvorak

4
It may have an odd or even number of characters홀수 또는 짝수가 아닌 문자가 있습니까?
스낵

1
@Snack 사람들이 두 개의 응답 코드 부분이 같은 길이를 가질 필요가 없음을 알립니다.
Calvin 's Hobbies

답변:


55

자바 스크립트 (148 바이트)

질문에 대해 경고 *를 생성하는 부작용으로 일부 넌센스 리터럴을 만듭니다. (분할은 비슷하지만 각 답변에 대해 경고를 만듭니다 *).

"';"+alert( 'What is the ideal breakfast???')+/ " ;apl=e"rbta(k"esnc"r.armebplleadc ee g g s(" ) + " \/)k;e"/+ ",t'hceo 'c)a;kye= ailse rat (lpi)e "

스플릿 :

";+lr('hti h da rafs??)/";p="baken".replace   (    /ke/ ,'co');y=alert(p) 

'"aet Wa steielbekat?'+  alert("scrambled eggs")+"\);"+"the cake is a lie"

 

의문: What is the ideal breakfast???

답변 : baconscrambled eggs


4
이것이 내가이 사이트에 대해 좋아하는 종류의 품질입니다! 이것을 할 수있는 사람들을 다른 곳에서 찾을 수 있습니까?
Cruncher

1
나는 즉흥 수업을 받았으며 아마도 유머 가치에 대해 +1을 줄 것입니다. 그러나 모든 조리개 과학 엔지니어들이 알고 있듯이 우리는 과학의 실무자입니다 . 그래서 가장 재미있는 부분은 깔끔한 총만드는 것 입니다. :-)
Dr. Rebmu

29

Brainfuck (437 자)

이 프로그램이 실제로 의미있는 일을하는 최초의 brainfuck 프로그램이라고 고백해야합니다. 이 프로그램은 4 개의 메모리 위치 만 사용하므로 메모리 부족 시스템에 최적화되어 있습니다.

의문: What are the two main groups of trees?

답변 : conifersbroadleafs

-+[[++++++++++++++++++++++[+>++++++[+>++++++++++++<>-+]+>+-+.++++++<+<+-+]+>+++++.+>++.+-..------.-<--..-+-+-+..->.-+-+-+.+<+++.+-+-+-+-+.++++.+++.+<.+>-+++-+++-+++-++.->]]++-+[[+-+-[[+++++++++++++++[>++>+++++>+++++++<<<-]>-->>---<++.+++++++++++++++++.-------.>.<<.>.>--.<++++.<.>>++.<+++.---.<.>>.+++.<++++++++++.<.>--.------------.++++++++.+++++.<.>-------.>-----.<++++++++.>+++.<+.>--.<<.>-.---------.<.>>+.--.<-..>+.<<[<++>-]<-.<]]]]

메인 루프

이 프로그램은 메인 루프 (모든 [] 블록이 한 번만 실행되므로 실제로 루프가 아님)와 두 개의 섹션으로 구성됩니다.

-+[[        // let answers enter
            * SNIP interleaved answer sections *
]]
++-+[[      // let odd answer and question enter
    +-+-[[  // let question enter
            * SNIP question section *
    ]]
]]

섹션을 독립적으로 테스트하려면 기본 루프를 고려해야합니다. 위치 0은 짝수 답변에 -1, 홀수 답변에 1, 질문 섹션에 2를 포함합니다.

답변 섹션

심지어 대답 (홀수 지침 제거) :

// location 0 contains minus 1 from main
// set location 1 = 10 * 10 minus 1 = 99 (c)
+++++++++++[>++++++++++<-]>-. // c
++++++++++++.-.     // on
-----.---.          // if
-.+++++++++++++.+.  // ers
<                   // goto 0 (which contains 0)
+-+-+-+-+-          // padding to match length of odd answer

이상한 답변 (지시 된 지침조차 제거됨) :

// location 0 contains 1 from main
// set location 1 = 16 * 6 plus 2 = 98 (b)  location used for characters below 'l'
// set location 2 = 16 * 7 plus 2 = 114 (r) location used for 'l' and above
+++++++++++++++[>++++++>+++++++<<-]>++.>++. // br
---.<               // o
-.+++.              // ad
>---.<              // l
+.----.+++++.       // eaf
>+++++++.           // s
>                   // goto 3 (which contains 0)

질문 섹션

다른 문자와 값이 크게 다르기 때문에 공간을 별도의 위치에 저장하기로 결정했습니다. 이것으로 간단히 공간을 인쇄 할 수 있습니다 <.>.

// location 0 contains 2 from main
// set location 1 = 17 * 2 minus 2 = 32 (space)
// set location 2 = 17 * 5 plus 2 = 87 (W)   location used for characters below 'r'
// set location 3 = 17 * 7 minus 3 = 116 (t) location used for 'r' and above
+++++++++++++++[>++>+++++>+++++++<<<-]>-->>---<++. // W
+++++++++++++++++.  // h
-------.>.<         // at
<.>                 // (space)
.>--.<++++.         // are
<.>                 // (space)
>++.<+++.---.       // the
<.>                 // (space)
>.+++.<++++++++++.  // two
<.>                 // (space)
--.------------.    // ma
++++++++.+++++.     // in
<.>                 // (space)
-------.>-----.     // gr
<++++++++.>+++.     // ou
<+.>--.<            // ps
<.>                 // (space)
-.---------.        // of
<.>                 // (space)
>+.--.<-..>+.       // trees
<<[<++>-]<-.<       // ? (value_of_space * 2 minus 1)

최종 업데이트

최종 업데이트에서 최소 지시 사항이 사용되도록 곱셈을 최적화했습니다. 또한 홀수 답변 섹션에 'l'을 두 번째 문자 그룹으로 포함하면 크게 개선되었습니다. 홀수 답변의 단일 문자 절약은 기본적으로 전체 프로그램의 두 문자를 의미합니다. 짝수 답변의 패딩도 감소하기 때문입니다. 또한 여기에서 불필요한 명령 몇 개를 제거했으며 더 이상 코드를 최적화 할 수 없다고 생각합니다.


23

배치-84

이 것을 아주 자랑스럽게 생각합니다

정식 프로그램 : 동전의 양면은 무엇입니까? (콘솔)

echo What are two sides of a coin?  2>>xx  2>>cc&&eecchhoo  hteaaidlss  2>>xx  2>>cc

짝수 만 : 헤드 ( 'c'파일)

eh htaetosdso  on 2>x >c&echo heads 2>x >c

승률 만 : 꼬리 ( 'x'파일)

coWa r w ie faci? >x 2>c&echo tails >x 2>c

두 경우 모두 오류 출력을 파일로 리디렉션하여 작동합니다.


이미 짧아 질 방법을 생각했지만 내일까지 기다려야합니다.
OUurous

3
12-28 = -16까지 지금까지 가장 높은 점수를 받았습니다.
justhalf

20

파이썬 -104 96 (골프 : 76)

내 솔루션은 다소 간단하고 읽을 수 있습니다.

"";print 'What is the color of a zebra?' ;""
paraianat= "' b l a c k '"
aparaianat="'w h i t e'"

산출:

What is the color of a zebra?
black
white

솔직히 bitpwner의 답변에서 첫 번째 줄에 대한 아이디어를 찾았습니다.


더 읽기 쉬운 대안 : -113 105 97

"";print 'What is the color of a zebra?' ;""
"p r i n t ' b l a c k '" ;"p r i n t ' w h i t e '"

더 짧은 대안 : -86 76

"";print'What is the color of a zebra?';""
"""";;pprriinntt''bwlhaictke''"""

"체스 보드"도 요구 사항을 충족합니다.
Martin Ender

3
@ MartinBüttner Zebra. - P
데이비드 Richerby

아 좋아 zebra. 그리고 정확히 30자인 "골프"버전에 잘 맞습니다. 따라서 솔루션을 약간 수정했습니다. :)
Falko

1
삼중 인용 문자열 은 주석이 아니라 여러 줄 문자열입니다. 그것들은 doc strings 로도 사용 되기 때문에 주석과 혼동 될 수 있습니다.
Falko

1
업데이트 된 질문의 길이는 29 자입니다.
Dennis

15

Rebmu : 79 자 OR (37 + 길이 (p1) + 2 * 최대 (길이 (p2), 길이 (p3)))

먼저 어떤 언어를 배워야하는지 묻는 79 자 솔루션을 제공합니다. (엔트로피 4.0, 30 글자 제외 ?) 및 Rebol 및 [Red] 의 제안을 제공합니다 .

DD  11  DD :do dd {dd  {p{Which languages must you learn?}qt}} pp{{[RReebdo]l}}

다른 언어가 아닌 여기에서 사용할 수있는 독특한 전술은 중괄호가 비대칭 문자열 구분 기호이며 법적으로 중첩 될 수 있다는 사실을 활용하는 것입니다.

my-string: {"It's cool," said {Dr. Rebmu}, "for MANY reasons--like less escaping."}

이스케이프 시퀀스를 사용하지 않는 모든 프로그램에서 쉽게 작동 할 수있는 일반화 된 솔루션을 만들 수 있습니다. 79 자 버전은 바로 가기에 충분하지만 프로그램 p2 및 p3에 대한 임의의 프로그램 소스를 올바르게 포함하려면 전체 템플릿이 필요합니다. 우리가 그것을 사용했다면 87 자였습니다.

DD  11  DD :do dd {dd  {p{Which languages must you learn?}qt}} ddoo{{pp{{[RReebdo]l}}}}

이 일반적인 형태를 사용하는 패턴은 가변 길이의 연속 문자의 세 가지 소스 텍스트가있는 경우 (의이 같은 예를 사용할 수 있도록한다는 것입니다 AAA, BBBBB, CCCCCCC당신의 라인을 따라 뭔가로 인코딩 할 수 있습니다)

DD  11  DD :do dd {dd  {AAAqt}} ddoo{{BCBCBCBCBC C C}}

(참고 : 이스케이프 문자를 사용하는 프로그램 에서이 패턴을 조정하지 않으면 작동하지 않지만 치명적인 결함은 아닙니다. 중괄호로 구분 된 문자열에서 비교할 수없는 왼쪽 괄호를 얻으려면 다음과 같은 것이 필요 {Foo ^{ Bar}하지만 ... 대체 문자열 표기법 "Foo { Bar"및 결합 된 사례는 이스케이프되지 않은 문자열의 혼합을 함께 붙여서 관리 할 수 ​​있습니다.)

그래서 ... 어떻게 예를 들어? 일반적인 형식을 사용할 수있게되면이 573 개의 문자 프로그램은 3 개의 이전 코드 골프 솔루션에서 몇 분만에 조립되었습니다.

DD 11 DD : do dd {dd {rJ N 0 % rN Wa1m2j S {\ x /} D00 Hc & [u [Ze? Wa Qs ~ rpKw [isEL00c [skQd2k] [eEV? kQ [tlQ]] pcSeg--b00 [ eZ 1 5] 3] prRJ [si ~ dSPscSqFHs] eZ 1 [s + dCa + wM2cNO]]] Va | [mpAp2j] prSI ~ w { } Ls2w Wl h01tiVsb01n -1 chRVs { } hLceVn01qt}} ddoo { CrdSz [sn [{N sbeo [tIt0l1eV} 0e5gXN1 01L {5s0} C {1} 0 {0 Do5f0 0bMe1e0r0} 0]] tMw9C9 Numz Jl [paN + [KperlCJBn [[ba sWS {B noJn ln]] {K, j} b P {. } lf EZ--n [N m {G를 더 많이 구입하고 더 구입}] {T akeonedownandpassitar ound} c B w P lf]]}}

누구든지 자신이 선택한 언어로 해당 프로그램을 작성하고 573을 이길 수 있다고 생각되면 알려주십시오. 선택하신 언어가 Rebmu가 아니라고 가정하면 해당 프로그램이 최소가 아니라는 것을 알고 있기 때문에 나는 당신에게 많은 명성을 얻게 될 것입니다. :-)

p2와 p3의 길이가 불균형 할 때 마지막에 나오는 "폐기스러운"간격이 발생합니다. 그러나이 경우 3 개의 프로그램 모두 크기가 다르므로 p2 / p3에 대해 특히 적합한 페어링이 없습니다. (미로 등의 입력으로 외부 데이터가 없었기 때문에 비슷한 길이의 것이 아니기 때문에 이것을 선택했습니다. 더 최적의 새로운 프로그램을 작성할 수는 있었지만 충분한 시간을 보냈습니다. 당신이 하지 않는 새로운 프로그램을 작성해야 ...)

작동 원리

(참고 : 간소화되지는 않았지만보다 흥미로워 보이는보다 "창의적인"접근 방식으로 시작했습니다. 이 접근 방식을 설명하는 것은 이미 길기 때문에 블로그 항목으로 옮겼습니다 .)

여기서 중요한 것은 다른 항목들과 마찬가지로 "문자열로 eval code"속임수입니다. 비대칭 문자열 구분 기호의 트럼프 카드 만 있습니다. 먼저 80 자의 대소 문자가 어떻게 작동하는지 설명하겠습니다.

이 경우의 가독성을 위해 공백을 조정하는 "전체"프로그램은 다음과 같습니다.

DD 11                    ; assign 11 to dd (about to overwrite again)
DD :do                   ; make dd a synonym for DO (a.k.a. "eval")

; eval a string as source code that ends with QUIT (QT)
dd {dd  {p{Which languages must you learn?}qt}}

; we'll never get here, but whatever's here must be legally parseable
pp{{[RReebdo]l}}

여기서는 DD를 DO (일명 "eval")의 동의어로 설정합니다. 그러나 속임수는 절반이 줄어든 프로그램이 실행될 때 D를 무해한 리터럴 1로 정의하는 유일한 효과를 갖는 실행 코드를 감추는 것입니다.

홀수 문자 코드로 공백을 다시 조정 한 내용은 다음과 같습니다.

D 1                      ; assign 1 to d
D d                      ; assign d to itself, so it's still 1
d                        ; evaluates to integer, no side effect
{d pWihlnugsms o er?q}   ; string literal, no side effect
p {Rebol}                ; print "Rebol"

그리고 짝수 문자 코드는 다음과 같습니다.

D 1                      ; assign 1 to d
D:od                     ; URL-literal (foo:...), no side effect
d                        ; evaluates to integer, no side effect
{{hc agae utyulan}t}     ; string literal (well-formed!), no side effect
p {[Red]}                ; print "[Red]"

실제로 절반이 아닌 프로그램의 경우 dd {dd {(arbitrary code)qt}}원하는 코드를 실행합니다. 그러나 하나의 평가 대신 두 개의 평가 호출이 있습니다. 중첩 된 괄호는 인터리브 된 코드에서 훌륭하게 작동하지만 DO의 평가 동작을 망가 뜨리기 때문입니다. 때문에:

do {{print "Hello"}}

문자열을 프로그램으로로드하지만 해당 프로그램은 문자열 상수 인 것 {print "Hello"}입니다. 따라서 여기에서 사용하는 트릭은 DD (DO와 동일한 기능 값을 유지)를 가져 와서 두 번 실행하는 것입니다. 절반은 줄의 다른 부분을 씹지 만 내용에 대해 짝수 / 홀수가 올바른 경우 둘 다 씹지 않으며, 절반을 벗어난 후에 줄 바깥에 남은 것은 단지 정수 d이기 때문에 무해합니다.

이 패턴을 사용하면 프로그램 동작을 반으로 자르지 않아도 프로그램 동작을 작성하는 데 어려움이 없습니다. 코드의 문자 길이가 짝수 인 한 아무 것도 넣을 수 있습니다 (QT를 세는 경우 홀수). 홀수에서 짝수를 가져와야하는 경우 공백 을 넣으십시오 (p1의 홀수 프로그램 길이에 대해서는 실제로 p1에 위의 수식에 +1이 있음) . 트릭은 나중에 인터리빙 된 코드를 작성하는 것처럼 보이며 파서 반으로 떨어지지 않으면 파서를 통과해야합니다 . (QT로 인해 실행되지는 않지만 실행되기 전에 LOADable이어야합니다.)

이 경우는 사소합니다. pp정의되지 않은 경우에도 기호로 잘로드 p되고 각 반 프로그램에서 인쇄 를 위해 분할됩니다 . 그러나 문자열 리터럴을 다시 사용하여 다른 트릭을 수행 할 수 있습니다. 절반의 프로그램은 여전히 ​​DO가 정상적으로 정의되어 있으므로 다음과 같이 말할 수도 있습니다.

ddoo{{pp{{[RReebdo]l}}}}

파서가 선택하는 유일한 부분을 전체적으로 상징적 단어 ddoo와 문자열 리터럴로 만들면 해당 문자열 리터럴 내에 원하는 두 개의 프로그램을 인터리브하고 파서를 화 내지 않아도됩니다. 절반 버전은 다음과 같이 말합니다.

do{p{Rebol}}

..과...

do{p{[Red]}}

내가 말했듯이,이 부분은 프로그램을 문자열로 취급하고 평가하는 다른 솔루션에 익숙해 보입니다. 그러나 경쟁의 경우 포장하는 프로그램에 중첩 된 줄이 포함되어 있으면 렌치가 생깁니다. 여기서 문제가되는 유일한 것은 캐럿 ( ^)을 통해 탈출하는 것입니다 ... 이는 쉽게 해결할 수 있습니다.


(작은 '속임수'참고 :이 문제에 대한 답변으로 'QUIT'에 QT를 추가했습니다. 실제로, 종료하기 전에 약어를 의도적으로 제거했습니다 ... 어쨌든 콘솔 사용에만 적합하다고 생각했기 때문입니다. REPL에없는 경우 2 글자 공백으로, 특히이 경우에 대해 추가하지 않고 잘못되었다고 생각하기 때문에 추가하고 있습니다. 그럼에도 불구하고, 변경 전에는 2 자 이상이되었습니다. 내가 솔루션을 처음 게시했을 때 Rebmu에는 버그가 있었지만 실제로 작동하지는 않았지만 현재는 작동하지 않습니다.)


실제로 자신 만의 프로그래밍 언어를 만들었습니까?
목소리

2
@ tjt263 기존 언어 Rebol 의 코드 골프 "인코딩"을 생각하는 것이 좋습니다 . 사람들은 예를 들어 Pyth 와 비슷한 작업을 수행 했으며 기본적으로 Python을 축약합니다. 그러나 Rebmu는 Rebol 파서가 실제로로드 할 수 있고 "호환"한다는 점에서 상당히 흥미로운 차이점이 있습니다. 중간에 언제든지 Rebol에 침입 할 수 있습니다 (예 : 모래 시계 참조) . 원하는 경우 Rebol 및 Red 채팅 에서 토론 해 드리겠습니다.
Dr. Rebmu

15

186 139 135

"";print'What are the best things in life?';""&&pprriinntt("'hceraurs ht hyeo ulra meennetmaiteiso'n s   o f   t h e i r   w o m e n ")

인생에서 가장 좋은 것은 무엇입니까?

"pitWa r h ettig nlf?;"&print('crush your enemies'                 )

적을 분쇄

";rn'htaetebs hnsi ie'"&print"hear the lamentations of their women"

여자들의 애도를 들으십시오

덜 긴 답변 사용하기 :

79 72

"";print'What are my preferred weapons?';""&&pprriinntt("'smwaocredss'")

What are my preferred weapons?(30 바이트, H (X) = 3.76) swords(H (X) = 2,25) 및 maces(H (X) = 2,32)


9

파이썬 -139 103

"";print'What are the ingredients for success?';""; ";" ;id=='"RUaniincboorwnss'";;pprriinntt  id++"'"'

What are the ingredients for success?-> UnicornsRainbows

테스트:

c="\"\";print\'What are the ingredients for success?\';\"\"; \";\" ;id==\'\"RUaniincboorwnss\'\";;pprriinntt  id++\"\'\"\'"
exec c        # What are the ingredients for success?
exec c[::2]   # Unicorns
exec c[1::2]  # Rainbows
print 
print c[::2]  # ";rn'htaeteigeinsfrsces'";"";d="Unicorns";print d+''
print c[1::2] # "pitWa r h nrdet o ucs?;" ; i='Rainbows';print i+""

구 버전:

# What are the ingredients for success?
"";print(('What are the ingredients for success?'));""; ";" ;"pHrEiRnEt (C'OUMnEiSc oZrAnLsG'O)"; ";" ; "p,r iTnOtN(Y' RTaHiEn bPoOwNsY'.)"
# Unicorns
";rn('htaeteigeinsfrsces')";"";print('Unicorns');"";", TONY THE PONY."
# Rainbows
"pit(Wa r h nrdet o ucs?);" ; "HERE COMES ZALGO" ;  print('Rainbows')

6

하스켈, 117

Haskell의 기능적 패러다임으로 작업해야한다는 것은 모든 것이 변수에 할당되거나 라인 --또는 블록 {- -}주석으로 주석 처리 되어야 함을 의미합니다 . 넌센스 기능이 할당없이 실행되었습니다. 따라서 제 자신을 깨끗하게 유지하기 위해, 규칙이 허용하는 한도 내에서 질문과 답변을 짧게 유지했습니다.

질문 : 충분하지 않은 것은 무엇입니까?

main=putStrLn{---}"What can I not have enough of?"{- }
=u"Scrank=e"sS"h
omeasi"n
=mpauitnS=tpru taSntprt tmLi

-----}

"신발"과 "케이크":

mi=uSrn--"htcnInthv nuho?{ 
uSrn="Shoes"
main=putStr mi
--}
anpttL{-}Wa a  o aeeog f"-}="cakes"
main=putStr anpttL
---

NB crank"무엇을 가질 수 없습니까?" 의미있는 것으로 간주해서는 안됩니다.


1
댓글이 허용되지 않습니다
자부심을 가진 haskeller

그리고 두 번째 것은 어떻게 유효한 하스켈 구문입니까?
자랑스런 Haskeller

닫는 쌍이 줄 주석에 있기 때문에 원래 코드에는 닫히지 않은 주석 블록이 있습니다. "케이크"코드는 코드처럼 보이지 않습니다-기능이 없습니까? 정의에서 = 기호는 어디에 있습니까? 실제로 anpttLWa라고하지 않습니까?
자랑스런 Haskeller

@proudhaskeller 댓글에 대한 규칙을 놓쳤습니다. 미안합니다. 첫 번째 프로그램에는 닫히지 않은 주석 블록이 없습니다. 잘 파싱합니다. 라인 주석은 블록 주석 내에서 의미가 없습니다. 라인 주석이 유효하기 때문에 두 번째는 유효합니다. anpttL은 문자열입니다. 블록 주석을 꺼내면 "케이크"와 같습니다. Wa 없습니다 그래서, 아니, anpttLWa 실제로 아니라, 블록 주석에.
comperendinous

2
@proudhaskeller 제 머리는 GHCi가 그 대신 작업을 수행하도록합니다.
comperendinous

4

리스프 (76 자)

31 자 질문, 각 답변에 6 자 ⟹ 길이-페이로드 = 33

'(: (pprriinncc''fmuacghesnitaa))':(princ "What is your favorite pink hue?")

나는“좋아하는 색은 무엇입니까?”를 사용하고 싶었지만 영국식 철자법으로 확장되어 질문 길이의 최소 30 자에 도달했으며 큰 따옴표의 균형을 맞추기 위해 홀수 길이의 질문이 필요했습니다.

그들은 Common Lisp가 장황하다고 말하지만, 당신은 그렇게 생각하지 않을 것입니다. 매우 난독 화되지는 않지만 인용 된 부분과 실행되는 부분을 보려면 공백을 약간만 삽입하면됩니다.

많은 Lisp 구현은 기호를 대문자로 변형하기 때문에 색상을 외칩니다. 그것이 당신을 귀찮게한다면,로 변경 ''fmuacghesnitaa하십시오 ""fmuacghesnitaa"".


이 질문에 투표 구성 요소가 있었기 때문에 더 많은 투표를 시도하기 위해 관심을 끌었습니다. 그러나 현상금이 소진되어 나 ​​자신에게 요점을 줄 수 없기 때문에 :-) 나는 Rebmu의 조상 언어를 기반으로 귀하의 항목에 그것을 줄 것이며, 당신이 전에하지 않은 경우 그것을 확인하도록 권장합니다! codegolf.stackexchange.com/a/36114/57
Dr. Rebmu

3

스타 타 295

질문 : 지금 구울 수있는 최고의 디저트는 무엇입니까? 답 : 브라우니와 쿠키.

설명 : STATA의 명령은 줄 바꾸기로 구분됩니다.
"//"는 STATA의 주석이지만 "///"는 컴파일러에게 다음 줄을 계속하고 내용을 현재 명령에 포함 시키도록 지시합니다.

STATA의 명령은 종종 차별화 할 수있을 정도로 고유하다고 간주되는 지점으로 축약 될 수 있습니다 (따라서 "generate"는 "g", "global"은 "gl"또는 "glo", "capture"는 "cap", " 디스플레이 "가"di "등이 됨). display 명령은 텍스트를 화면에 표시합니다. capture 명령은 모든 오류 (구문 오류 포함)를 캡처하므로이 프로그램이 올바르게 컴파일됩니다.

까다롭기를 원한다면, 줄에서 처음 3 개의 연속 된 것들 이후의 추가 "/"는 컴파일러에 의해 무시됩니다. 또한 "brownies"프로그램에서 기술적으로 + ""는 주석입니다. 그러나 캡처 명령이 주석이 아니더라도 여전히 관련이 없기 때문에 여전히 중요하다고 주장합니다.

정말 긴 설명을 읽어 주셔서 감사합니다. 이제 코드 :

"지금 빵을 굽는 가장 좋은 디저트는 무엇입니까?"

g   a = "g   q   /b/a/" 
g l= "b = ""b r o w n i e s "
g   c = "g   /b/a/" 
g lpo= "d = ""c o o k i e s "
g   e = "c a p  "  /////
 +  "d i ""$ b "
g   f = "c a p  "  /////
 +  "d i ""$ d "
g   g = "c a p  "  /////
 + "c a p   / / /  "+ "/ / /"
di "What are the best desserts to bake right now?"

"브라우니"

g a="    ba"
gl b="brownies"
    g /// 
 p="  "       
g e="   " //
 di "$b"
    cap ///
+" "  
g g="   " //
  cap ///   +"  "
i"htaetebs esrst aergtnw"

"쿠키"

    g q /// 
 ="  "        
g c="  ba"
glo d="cookies"
    cap ///
+" "  
g f="   " //
 di "$d"
    cap  ///
+ "       " ///
d Wa r h etdset obk ih o?

2

Ksh (82 자)

35 자 질문, 각 답변에 5 자 ⟹ 길이-페이로드 = 37

ec=\'o'(;)eehc(h)oe cChroi m$e1;; '\'
echo  What\'s the  country\'s worst problem?

POSIX 이외의 함수 정의 구문을 남용합니다. 대시와 bash는 그것을 취할 수 없지만 ksh (public domain 또는 ATT)는 사용할 수 없습니다.

눈에 띄는 것은 없습니다. 낭비가 없으면 부족이 없다.


2

PowerShell 88

"" > $x;{What is my favorite equipment?};"" >> ${x}

${XsXwXoXrXdX};;;${XsXhXiXeXlXdX}

내가 가장 좋아하는 장비는 무엇입니까? (30 자, H (X) = 4.0314)

"  x{hti yfvrt qimn?;"> {}
{sword};$XXXXXXX

(5 문자, H (X) = 2.32193)

">$;Wa sm aoieeupet}" >$x
$XXXXXX;;{shield}

방패 (5 자, H (X) = 2.58496)

전체 프로그램에서 빈 문자열을 존재하지 않는 변수로 리디렉션합니다 (빈 문자열에 대한 ${x}따옴표 는 짝수 / 홀수 버전에서 빈 블록 {}또는 존재하지 않는 변수로 리디렉션되는 넌센스 문자열을 형성하는 데 사용됩니다 $x). 2 개의 사용하지 않는 변수를 선언합니다 (이것은 다른 사용되지 않은 변수 옆에 $XXXXXX또는 $XXXXXXX다른 경우에 인쇄되어 있습니다).


1

GolfScript, 51 바이트

"Which are the sides of a coin? ".;""thaeialdss""

산출

Which are the sides of a coin? 

작동 원리

.;문자열을 복제하고 사본을 삭제합니다. ""빈 문자열을 푸시합니다. thaeialdss정의되지 않았으므로 아무 것도 수행하지 않습니다.

이상한 문자

"hc r h ie faci?";"heads"

산출

heads

작동 원리

; 스택에서 첫 번째 문자열을 삭제합니다.

심지어 문자

Wihaetesdso  on ."tails"

산출

tails

작동 원리

Wihaetesdsoonnoops입니다. .스택의 빈 문자열을 복제합니다.

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