처음에 그들은왔다


29

"처음으로 왔습니다 ..."Martin Niemöller 의시입니다 .

First they came for the Socialists, and I did not speak out-
Because I was not a Socialist.

Then they came for the Trade Unionists, and I did not speak out-
Because I was not a Trade Unionist.

Then they came for the Jews, and I did not speak out-
Because I was not a Jew.

Then they came for me-and there was no one left to speak for me.

당신의 임무는 위를 출력하는 것입니다. 이것은 이므로 바이트 단위의 가장 짧은 코드가 이깁니다!

규칙

  • 모양에 영향을주지 않는 추가 공백을 포함 할 수 있습니다. 단일 후행 줄 바꿈이 허용됩니다.
  • 그렇지 않으면, 개행 위치를 포함하여 출력이 정확하게 일치해야합니다.
  • 메타 표준에 따라 문자열 목록을 출력 할 수 있습니다. 그러나 빈 줄을 포함해야합니다.

나는 개인적으로 이것이 시가 어떻게 배치 되었기 때문에 이것이 속박이 아니라고 믿는다-그것은 골프에 창의성이 필요하다. 이것이 속박인지 아닌지에 대한 메타 토론은 여기 에서 찾을 수 있습니다 .


7
이것이 RickRoll 챌린지 위의 사이트에 추가되는 것이 확실하지 않습니다.
AdmBorkBork

7
나는 여기에 ricroll dupe의 망치질을 좋아하지 않습니다.
programmer5000


11
한 번은 이것이 Rickroll의 속임수라고 생각하지 않습니다. 여기에는 의미있는 구조가 있습니다. 병렬 처리는 다른 전략에서 가능합니다. 다시 열기
xnor

3
이 구조는 반동이 아니라 리듬의 속임수를 지지 하는 주장이다 .
피터 테일러

답변:


8

SOGL V0.12 , 103 (102) 101 바이트

 →∑‘¾ο╤Ε9‘}ψ⁴‘¹"4¡‘Q°‘:¹¹I{ū_:¹"Eā/}l6⁸SÆ□⁴↔b⅜╬I℮;YΥηκ*█⅞F^Κ⅜⁸{x⅔⁵⅟╚?Z‘O}"Ι╚╬√⅔δηvΧχ⁷⁾Η<υL┼!Ο'μΠ⁵╝⁷‘⁾

여기 사용해보십시오!

설명 (여기서 ..공간을 절약하기 위해 압축 문자열을 바꿨습니다 ) :

..‘.‘..‘                              push "socialist", "trade unionist" and "jew"
        ¹                             wrap in an array: ["socialist", "trade unionist", "jew"]
         "..‘..‘                      push "first" and "then"
                :                     duplicate the then
                 ¹                    wrap in an array: ["first","then","then"]
                  ¹                   wrap those two in an array: [["socialist", "trade unionist", "jew"], ["first","then","then"]]
                   I                  rotate clockwise: [[first,socialist], [then,trade unionist], [then,jew]]
                    {         }       for each do, pushing the array
                     ū                  uppercase the 1st letter of each word in the array - ["First", "Socialist"]
                      _                 splat the contents on the stack   "First", "Socialist"
                       :                duplicate the 2nd one             "First", "Socialist", "Socialist"
                        ¹               wrap in an array                  ["First", "Socialist", "Socialist"]
                         "..‘           push "ŗ they came for the ŗs, and I did not speak out-\nBecause I was not a ŗ." with ŗ replaced with its appropriate item in the array
                             O          output that
                               "..‘   push "then they came for me-and there was no one left to speak for me."
                                   ⁾  uppercase the 1st letter of it
                                      implicitly output it in a new line

설명을 추가해 주시겠습니까?
Nzall

@Nzall 작성을
잊었

@Nzall 설명 추가
dzaima

7

6502 머신 코드 (C64), 229 바이트

다소 지루한 바이트 로 C64에서 여전히 지루한 종류 :)

00 C0 A9 17 8D 18 D0 A2 2C 86 FE A6 FE A0 C0 BD B6 C0 20 1E AB C6 FE 10 F2 60
C6 49 52 53 54 20 00 D4 48 45 4E 20 00 54 48 45 20 00 54 48 45 59 20 43 41 4D
45 20 00 46 4F 52 20 00 53 50 45 41 4B 20 00 41 4E 44 20 C9 20 44 49 44 20 4E
4F 54 20 00 4F 55 54 2D 0D 00 C2 45 43 41 55 53 45 20 C9 20 57 41 53 20 4E 4F
54 20 41 20 00 4D 45 2D 41 4E 44 20 54 48 45 52 45 20 57 41 53 20 4E 4F 20 4F
4E 45 20 4C 45 46 54 20 54 4F 20 00 4D 45 2E 00 2E 0D 00 53 2C 20 00 D3 4F 43
49 41 4C 49 53 54 00 D4 52 41 44 45 20 D5 4E 49 4F 4E 49 53 54 00 CA 45 57 00
0D 00 8C 35 3A 6B 2A 1F B4 90 B0 56 50 3A 41 93 B0 25 35 2A 1F B4 90 A1 56 50
3A 41 93 A1 25 35 2A 1F B4 90 97 56 50 3A 41 93 97 25 35 2A 18

온라인 데모

용법: SYS49152

설명:

여기에는 의미없는 디스 어셈블리 목록 대신 대부분의 데이터가 포함되어 ca65있으므로이 머신 코드를 생성 하는 스타일 어셈블리 소스가 있습니다.

.segment "LDADDR"
                .word   $c000           ; load address
.code
                lda     #$17            ; upper/lower mode
                sta     $d018           ; store in VIC register
                ldx     #revpoemsize    ; initialize ...
                stx     $fe             ; ... counter
loop:           ldx     $fe             ; load current position
                ldy     #$c0            ; highbyte of strings always same
                lda     revpoem,x       ; load lowbyte from table
                jsr     $ab1e           ; output 0-terminated string
                dec     $fe             ; decrement position
                bpl     loop            ; >=0 ? -> repeat
                rts                     ; done

first:          .byte   "First ", 0
then:           .byte   "Then ", 0
the:            .byte   "the ", 0
came:           .byte   "they came ", 0
for:            .byte   "for ", 0
speak:          .byte   "speak ", 0
didnot:         .byte   "and I did not ", 0
out:            .byte   "out-", $d, 0
wasnot:         .byte   "Because I was not a ", 0
noone:          .byte   "me-and there was no one left to ", 0
me:             .byte   "me.", 0
period:         .byte   ".", $d, 0
comma:          .byte   "s, ", 0
socialist:      .byte   "Socialist", 0
unionist:       .byte   "Trade Unionist", 0
jew:            .byte   "Jew", 0
p:              .byte   $d, 0

revpoem:        .byte   <me, <for, <speak, <noone, <came, <then, <p
                .byte   <period, <jew, <wasnot, <out, <speak, <didnot
                .byte   <comma, <jew, <the, <for, <came, <then, <p, <period
                .byte   <unionist, <wasnot, <out, <speak, <didnot, <comma
                .byte   <unionist, <the, <for, <came, <then, <p, <period
                .byte   <socialist, <wasnot, <out, <speak, <didnot, <comma
                .byte   <socialist, <the, <for, <came, <first
revpoemsize     = * - revpoem - 1



4

펄 5 , 185 바이트

print join" they came for ",First,(map"the ${_}s, and I did not speak out-
Because I was not a $_.

Then",Socialist,"Trade Unionist",Jew),"me-and there was no one left to speak for me."

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

-3 바이트의 @ Massa 에 감사 합니다!


Join을 사용하면 의자를 5 개 정도 더
Massa

@Massa 잘 모르겠습니다! 단서가 더 있습니까?
Dom Hastings

나는 지금 모바일에 있지만 아래 perl6 답변을 살펴보십시오!
Massa

@Massa Ahhh, 좋아! 감사! -3 : :
Dom Hastings

3

C, 248 바이트

9 바이트를 절약 해 준 @ Zacharý에게 감사합니다.

p(x,y){printf("%s they came for the %ss, and I did not speak out-\nBecause I was not a %s.\n\n",x,y,y);}f(){p("First","Socialist");p("Then","Trade Unionist");p("Then","Jew");puts("Then they came for me-and there was no one left to speak for me.");}

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


명세서 로 s직접 이동할 수 있습니까 printf?
Zacharý

@ Zacharý 물론입니다.
Steadybox

3

C # (.NET 코어) , 248 (246) 242 바이트

a=>{string b=@", and I did not speak out-
Because I was not a ",c=" they came for ",d="Socialist",e="Trade Unionist";return$@"First{c+d}s{b+d}.

Then{c+e}s{b+e}.

Then{c}the Jews{b}Jew.

Then{c}me-and there was no one left to speak for me.";}

실제 줄 바꿈으로 인해 몇 바이트가 절약되었습니다.

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

Business Cat 덕분에 2 바이트 절약


3

파이썬 3 , 203 바이트

print('First',*[f'the {s}s, and I did not speak out-\nBecause I was not a {s}.\n\nThen'for s in['Socialist','Trade Unionist','Jew']],'me-and there was no one left to speak for me.',sep=' they came for ')

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


sep =는 천재적인 움직임입니다! :-)
마사

3

Befunge-93 , 348 바이트

".em rof kaeps ot tfel eno on saw ereht dna-em rof emac yeht nehT"52*:v
v"d not speak out-"*25"Because I was not a "<   p5-2*89p1-2*89"vvJew."<
> "id I dna ">",sweJ>v"67+2p66+5p     v     ^p2-2*89"vTrade Unionist."<
>"tsriF">:#,v>",stsinoinU edarTv"67+3pv     ^   p3+66p40"^_Socialist."<
>"nehT"52*: v>",stsilaicoS@"67+3p     >" eht rof emac yeht "

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


3

비 펀지, 293 274 270 바이트

62574732594932584832001v_@#:\0\!<
0-*84g+3/"P"\%"P"::+p00<_|#:-1g0
84!-"*":g+3/"P"\%"P"::+1\<+1_$#:^#-2\,-**
&First0 they came for %the Qs, and I did not speak out-*Because I was not a (.**
ThenOme-and there was no one left to speak for me.*$Jew*Socialist/Trade Unionist

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

이것은 기존 Befunge 솔루션에 대한 다른 접근 방식입니다. 그것은 일종의 링크 된 목록을 사용하여 공통 문구의 사전을 저장 한 다음 문구가 출력되어야하는 순서를 나타내는 간단한 값 목록을 스택에 가지고 있습니다.


2

레티 나 176 바이트


 Socialists, Trade Unionists, Jews,1me-and there was no one left to2for me.
( .+?)s,
1the$& and I did not2out-¶Because I was not a$1.¶¶Then
^
First
1
 they came for 
2
 speak 

온라인으로 사용해보십시오! 설명 : 12중복 제거 할 가치가있는 반복되는 문자열입니다. 가 First쉽게 반복적 인 부분에 대한 자리를 선택 할 수 있도록 나중에 추가, "그들은 [그룹] 초 동안 온, 나는 밖으로 때문에 말하지 않았다 나는 [그룹] 아니었다. 그런 다음"에 의해 확장되는 두 번째 단계.


2

자바 스크립트 (ES6) 231 227 223 221 바이트

_=>`First${t=" they came for "}the Socialist${a=`s, and I did not speak out-
Because I was not a `}Socialist${t=`.

Then`+t}the ${(u="Trade Unionist")+a+u+t}the Jew${a}Jew${t}me-and there was no one left to speak for me.`

시도 해봐

o.innerText=(
_=>`First${t=" they came for "}the Socialist${a=`s, and I did not speak out-
Because I was not a `}Socialist${t=`.

Then`+t}the ${(u="Trade Unionist")+a+u+t}the Jew${a}Jew${t}me-and there was no one left to speak for me.`
)()
<pre id=o>


2

자바 8, 250 236 바이트

o->{String t=" they came for ",r="First";for(String s:"Socialist,Trade Unionist,Jew".split(","))r+=t+"the "+s+"s, and I did not speak out-\nBecause I was not a "+s+".\n\nThen";return r+t+"me-and there was no one left to speak for me.";}

여기에서 시도하십시오.


2

자바 스크립트 (ES6) 210 207 206 203 바이트

다른 솔루션에 대한 다른 접근 방식 은 도전이 다시 시작되었으므로 자체 답변으로 편집 할 가치가 있다고 생각했습니다.

_=>`First${["Socialist","Trade Unionist","Jew"].map(x=>t+`the ${x}s, and I did not speak out-
Because I was not a ${x}.

Then`,t=` they came for `).join``+t}me-and there was no one left to speak for me.`

시도 해봐

o.innerText=(
_=>`First${["Socialist","Trade Unionist","Jew"].map(x=>t+`the ${x}s, and I did not speak out-
Because I was not a ${x}.

Then`,t=` they came for `).join``+t}me-and there was no one left to speak for me.`
)()
<pre id=o>


2

가이아 , 179 175 바이트

⇓“the ”3ṁ“s, and I did not speak out-¶Because I was not a ”2ṃ“.¶¶Then
“ they came for 
First”“Socialist“Trade Unionist“Jew”↓¦⇑“me-and there was no one left to speak for me.”]$

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

설명

여기에는 3 개의 기능이 정의되어 있습니다 (한 줄에 1 개). 맨 아래가 먼저 호출됩니다. 줄 바꿈으로 바뀝니다.

⇓“the ”3ṁ“...”2ṃ“.¶¶Then  First helper function. Argument: s
⇓                         Push "Then they came for "
 “the ”                   Push "the "
       3ṁ                 Bring s to the top
         “...”            Push "s, and I did not speak out-¶Because I was not a "
              2ṃ          Push a copy of s
                “.¶¶Then  Push ".¶¶Then"


“ they came for   Helper function. No arguments.
“ they came for   Push " they came for "


First”“..“..“..”↓¦⇑“...”]$  Main function.
First”                      Push "First"
      “..“..“..”            Push the list ["Socialist" "Trade Unionist" "Jew"]
                ↓¦          Call the first helper function on each.
                  ⇑         Push "Then they came for "
                   “...”    Push "me-and there was no one left to speak for me."
                        ]$  Wrap the stack in a list and join with no separator.

2

풍선 껌 , 149 (132) 129 바이트

00000000: 9d4d b515 0241 14cc af8a c991 1e70 0991  .M...A.......p..
00000010: 02fe bbfd e7b7 cb1a 523d ee0e d9f8 7453  ........R=....tS
00000020: 631d 5cc2 2b84 5432 2265 760c 6315 a654  c.\.+.T2"ev.c..T
00000030: a4d6 d92a 480a 0c20 5201 a91c ec8c 2987  ...*H.. R.....).
00000040: f2ae 1634 3924 6f79 6b2e c8ee 4dba 14eb  ...49$oyk...M...
00000050: 4130 4958 3ed9 9e18 128c a94c 95fc e3e0  A0IX>......L....
00000060: b6fd fa65 c88b 1fa7 7795 e77b 25d7 488a  ...e....w..{%.H.
00000070: 9d68 f898 8792 8c82 2307 a78e bb87 647d  .h......#.....d}
00000080: 03                                       .

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

지루한 풍선 껌 답변. 이미 SOGL에 의해 구타되었으므로 좋습니다.

-17 바이트의 크레딧은 Dom Hastings 로갑니다

ovs로 -3 바이트


132 바이트 . 여전히 SOGL을 이길 수 없습니다!
Dom Hastings

@DomHastings 나는 당신이 Bubblegum으로 SOGL을 이길 것이라고 생각하지 않습니다 ...
아웃 골퍼 Erik

@EriktheOutgolfer 저도 그 사실에 매우 기쁩니다! 놀랍도록 표현하기 위해 시간을 투자하고 싶습니다!
Dom Hastings


2

SQL 269 바이트

declare @ char(18)='They came for the ',@a char(49)='s, and I did not speak out-
Because I was not a '
print'First '+@+'Socialist'+@a+'Socialist.

'+@+'Trade Unionist'+@a+'Trade Unionist.

'+@+'Jew'+@a+'Jew.

'+@+' me-and there was no one left to speak for me.'

1
안녕하세요, PPCG에 오신 것을 환영합니다! 서식을 추가하기 위해 게시물을 수정했습니다. 실제 코드에 관해서 "Then "는 마지막 세 문장에서 주요 단어 가 누락 되었다고 생각 하고 마지막 문장은 이제 "They came for the me-..."대신에 나타납니다 "Then they came for me-...".
Kevin Cruijssen



1

파이썬 2, 246 바이트

처음으로 문자열을 압축하여 반환하려고했습니다. 분명히 다른 접근법보다 더 많은 바이트가 필요합니다. 골프에 남은 것이 있습니까?

import zlib,base64
print zlib.decompress(base64.b64decode('eJyd0DEOwjAMBdA9p/gHoD0EAxJdgQNYiatGtDaKU1XcvikUdSkDjLb/f4NPMVlG7vgJTwOj1bRMuKiP1EfLdgBJwBkhBohm2IPpDh1z5Y7saTQux4nsdaStWDt37Vh27JtElT/oT++73PD0K1oq+97A1QKVZeI1DxVGz215mK7uO1nPf1Zu5g=='))

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



1

PHP, 194 바이트

First<?=$t=" they came for ";foreach([Socialist,"Trade Unionist",Jew]as$s)echo"the ${s}s, and I did not speak out-
Because I was not a $s.

Then$t"?>me-and there was no one left to speak for me.

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


1

C (gcc) , 244 바이트

f(c){for(c=0;c<3;printf("%s they came for the %ss, and I did not speak out-\nBecause I was not a %2$s.\n\n",c++?"Then":"First",c^2?c?"Trade Unionist":"Socialist":"Jew"));puts("Then they came for me-and there was no one left to speak for me.");}

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


1

파이썬 3 , 208 바이트

print(' they came for '.join(["First"]+[f"the {i}s, and I did not speak out-\nBecause I was not a {i}.\n\nThen"for i in['Socialist','Trade Unionist','Jew']]+['me-and there was no one left to speak for me.']))

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

@Step Hen 덕분에 -1


1
Then "for-> Then"for그리고 당신은 다른 파이썬 답변을 치고 있습니다 :)
Stephen

@StepHen 추가 공간을 확인해 주셔서 감사합니다! :-)
Massa

1

클로저, 285 바이트

(fn[](doseq[i(range 4):let[c["Socialist""Trade Unionist""Jew"""]f #(if(< i 3)% %2)]](println(if(= i 0)"First""Then")"they came for"(str(f(str"the "(c i)"s, ")"me-")(f"and I did not speak out-\n""and there was no one left to speak for me.")(f(str"Because I was not a "(c i)".\n")"")))))

이것은 재미있는 작은 도전이었습니다. 나는 지나치게 원형 교차로에서 무언가를하고 있음을 깨달았 기 때문에 거의 두 번이나 거의 대부분을 다시 작성했습니다. 여전히 손길이 닿을 수있는 몇 가지 영역이 있지만 원본을 54 바이트 만 "압축"하는 경우에도 그 결과가 만족 스럽습니다.

repl.io

설명은 사전 골프 코드를 참조하십시오.

(defn ftc []
  ; Loop over the lines numbers for reference
  (doseq [i (range 4)
          :let [; Added a dummy last "class" since "me-" wasn't necessary,
                ;  and only having 3 elements was causing OOB errors.
                classes ["Socialist" "Trade Unionist" "Jew" ""]

                ; A helper function that executes either its first or second argument
                ;  depending on if the current line is one of the first 3 lines.
                if-first-three-lines #(if (< i 3) % %2)]]

    ; An implicit space is inserted between each of the args to println
    (println
      ; Decide on the opener
      (if (= i 0) "First" "Then")

      "they came for"

      ; Start string concatenation because the implicit space
      ;  begins complicating things.
      (str
        ; Decide which "class" the line belongs to
        (if-first-three-lines
          (str "the " (classes i) "s, ")
          "me-")

        ; Decide on the line ending
        (if-first-three-lines
          "and I did not speak out-\n"
          "and there was no one left to speak for me.")

        ; Then pick the trailer
        (if-first-three-lines
          (str "Because I was not a " (classes i) ".\n")
          "")))))

1

JAPT , 153 150 149 147 바이트

`{=` ey ¯´ f `}´-d tre °s no e ¤ft  speak f ´.`i`Sáû\E
TÎè UÍát
Jew`·rÈ+U+`e {Y}s, d I ¹d not speak t-
Be¯«e I °s not a {Y}.

Tn`}`Fir¡

그것을 테스트

Oliver 덕분에 1 바이트 절약


1

05AB1E , 124 119 바이트

.•RYÁ Wö∍®Ø’áÅÚ)’Òü•'x¡™vy„€Û‚½#NĀ虓ÿ€»‹é€‡€€ ÿs,€ƒ Iƒ§€–¡´€Ä-“©¶y“ƒ« I€¥€–€… ÿ.“.ª¶¶}®19£“€á-and€Ç€¥€¸€µ…¸€„¡´€‡€á.“J

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

설명:

.•RYÁ Wö∍®Ø’áÅÚ)’Òü•
                  # Push compressed string "socialistxtrade unionistxjew"
 'x¡             '# Split it on "x": ["socialist","trade unionist","jew"]
                 # Convert each word to Titlecase: ["Socialist","Trade Unionist","Jew"]
v                 # Loop `y` over each of these strings:
 y                #  Push string `y`
 „€Û‚½            #  Push dictionary string "first then"
      #           #  Split on spaces: ["first","then"]
       N          #  Push the index of the loop
        Ā         #  Truthify it (0 remains 0; every other number becomes 1)
         è        #  Use it to index into the list
                 #  Titlecase it
 “ÿ€»‹é€‡€€ ÿs,€ƒ Iƒ§€–¡´€Ä-“
                  #  Push dictionary string "ÿ they came for the ÿs, and I did not speak out-"
                  #  where the "ÿ" are automatically filled with the strings at the top of the stack
  ©               #  Save it in the register (without popping)
                 #  Push a newline "\n"
 y                #  Push string `y` again
 “ƒ« I€¥€–€… ÿ.“  #  Push dictionary string "because I was not a ÿ."
                  #  where the "ÿ" is automatically filled again with the string
                #  Sentence case it: "because" becomes "Because"
 ¶¶               #  Push two newline characters "\n\n"
}                 # After the loop:
®                 # Push the string from the register:
                  #  "Then they came for the Jews, and I did not speak out-"
 19£              # Only leave the first 19 characters: "Then they came for "
“€á-and€Ç€¥€¸€µ…¸€„¡´€‡€á.“
                  # Push dictionary string "me-and there was no one left to speak for me."
J                 # Then join everything on the stack together (and output implicitly)

다음 과 같은 이유를 이해 하려면 이 05AB1E 팁 ( 사전 사용 방법사전의 일부가 아닌 문자열 압축 방법 ) 을 참조하십시오.

  • .•RYÁ Wö∍®Ø’áÅÚ)’Òü• 이다 "socialistxtrade unionistxjew"
  • „€Û‚½ 이다 "first then"
  • “ÿ€»‹é€‡€€ ÿs,€ƒ Iƒ§€–¡´€Ä-“ 이다 "ÿ they came for the ÿs, and I did not speak out-"
  • “ƒ« I€¥€–€… ÿ.“ 이다 "because I was not a ÿ."
  • “€á-and€Ç€¥€¸€µ…¸€„¡´€‡€á.“ 이다 "me-and there was no one left to speak for me."

-4

텍스트 , 348 바이트

First they came for the Socialists, and I did not speak out-
Because I was not a Socialist.

Then they came for the Trade Unionists, and I did not speak out-
Because I was not a Trade Unionist.

Then they came for the Jews, and I did not speak out-
Because I was not a Jew.

Then they came for me-and there was no one left to speak for me.

이것은 해당 언어로 가능한 가장 짧은 버전이며, 작성 당시 Befunge-93 답변과 동일합니다.


2
거의 모든 "텍스트"답변과 마찬가지로, 이것은 지루하고 게으 릅니다
Jo King

@Jo King 주목할만한 점은 Befunge-93 답변과 길이가 같다는 것입니다.
IFcoltransG
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.