태그 보관물: code-generation

code-generation

100 개의 Java Tuple 클래스 생성 100 줄 (유효한) Java 코드에

다음과 같이 시작하는 표준 출력 또는 해당 언어의 100 줄 (유효한) Java 코드에 쓰는 스크립트를 작성하십시오.

class Tuple1 {public Object _0;}
class Tuple2 {public Object _0,_1;}
class Tuple3 {public Object _0,_1,_2;}
class Tuple4 {public Object _0,_1,_2,_3;}
class Tuple5 {public Object _0,_1,_2,_3,_4;}
class Tuple6 {public Object _0,_1,_2,_3,_4,_5;}
class Tuple7 {public Object _0,_1,_2,_3,_4,_5,_6;}
class Tuple8 {public Object _0,_1,_2,_3,_4,_5,_6,_7;}
class Tuple9 {public Object _0,_1,_2,_3,_4,_5,_6,_7,_8;}
class Tuple10 {public Object _0,_1,_2,_3,_4,_5,_6,_7,_8,_9;}
class Tuple11 {public Object _0,_1,_2,_3,_4,_5,_6,_7,_8,_9,_10;}
class Tuple12 {public Object _0,_1,_2,_3,_4,_5,_6,_7,_8,_9,_10,_11;}

마지막 줄은로 시작해야합니다 class Tuple100.

이것은 이므로 바이트 단위의 가장 짧은 코드가 이깁니다!



답변

줄프, 42 바이트

최고 점수로 젤리를 때리는 보너스 포인트를 얻습니까? 인쇄 할 수없는 파일이 포함되어 있으므로 여기에서 온라인 으로 시도해 볼 수 있습니다 . 나는 인쇄 할 수없는 것을 가독성을 위해 각각의 대체 색인으로 대체했습니다.

‼Μz~1d"Ξ/êί Tuple% {Ξ0î⌂ Ξ2Qμ_ %;}"HRzH",_

설명

‼Μz~1d"Ξ/êί Tuple% {Ξ0î⌂ Ξ2Qμ _%;}"HRzH",_
 Μz~1d                                     map the range 1..100 with the following function
      "                                    begin a string
       Ξ/êί                                short for "class"
            Tuple% {               H       string interpolate H (current number)
                    Ξ0î⌂ Ξ2Qμ              short for "public Object"
                              _%;}" RzH    string interpolate with a range from 1..H joined
                                       ",_  by the string ",_" (auto-closed quotes)


답변

vim 56 54 키 스트로크

iclass Tuple1 {public Object _0;}<esc>qyYp<C-a>$y2bPr,<C-a>q98@y

V는 이전 버전과 호환 되므로 온라인으로 사용해 볼 수 있습니다!

이것은 vim에게 완벽한 작업입니다! 나중에 조금 더 골프를 칠 수도 있습니다. 또한 <c-a>Control-A 를 의미하며 한 번의 키 입력으로 계산됩니다.

설명:

iclass Tuple1 {public Object _0;}<esc>         'Enter the starting text


qy                          'Start recording in register y
  Yp                        'Yank the current line, the print on the line below
     <C-a>                  'Increment the next digit to occur by one
          $                 'Move to the end of this line
           y2b              '(yank) 2 words (b)ack. This will grab '_0;'
              P             'Print the previously yanked word before the cursor.
               r,           '(r)eplace the char under the cursor with a comma.
                 <c-a>q     'Increment the current digit, then stop recording
                       99@y 'Playback macro 'y' 99 times.


답변

젤리, 44 바이트

R’j“,_”
“¤>%,oỊȤʠ“ØụĊ5D³ṃṠɼQ»j;Ç;“;}¶”
ȷ2RÇ€

첫 번째 젤리 답변. 온라인으로 사용해보십시오!


답변

Pyth, 53 50 48 바이트

VS100%." }SüÆðQ´Ó3Ô«%&a´4UçõÛ"[Nj",_"UN

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

범위 (1,100)에 대한 간단한 반복과 형식화를 통해 묶음 문자열에서 해당 문자열을 작성합니다.

설명

VS100 %. "} SüÆðQ´Ó3Ô«% & a´4UçõÛ"[Nj ", _"UN

VS100 # 범위 반복 (1,100)
     %. "} SüÆðQ´Ó3Ô«% & a´4UçõÛ"# 문자열의 압축을 풀고 포맷하십시오
                              [# 인수 형식 지정 목록
                               N # 튜플 수
                                j UN # 조인 개체 번호 ...
                                 ", _"# ... 분리기 ", _"

압축이 풀린 문자열은 class Tuple%i {public Object _%s;}


답변

CoffeeScript, 86 84 바이트

console.log "class Tuple#{i} {public Object _#{[0...i].join ',_'};}"for i in[1..100]

온라인 솔루션보기


답변

자바, 160 , 125 바이트

개선을 위해 @DenkerAffe, @Denham Coote 및 @Mathias Ettinger에게 감사합니다.

Java 작성 java (누군가가 필요했기 때문에!)

void z(){String s="_0";for(int i=1;i<101;){System.out.println("class Tuple"+(i++)+" {public Object "+s+";}");s+=",_"+i;}}

그리고 골프화되지 않은 버전

void z(){
    String s = "_0";
    for(int i = 1 ;i < 101;){
        System.out.println("class Tuple" + (i++) + " {public Object "+ s + ";}");
        s += ",_" + i;
        }
    }


답변

Oracle SQL 9.2, 138 137 바이트

SELECT REPLACE('class Tuple'||LEVEL||' {public Object'||SYS_CONNECT_BY_PATH(LEVEL-1,',_')||';}','t,','t ')FROM DUAL CONNECT BY LEVEL<101;

@Peter 0/1 실수를 지적 해 주셔서 감사합니다.

쿼리는 계층 쿼리의 CONNECT BY CLAUSE를 사용하여 100 개의 행을 생성합니다.

LEVEL 의사 열에는 각 행의 행 번호가 포함됩니다.

SYS_CONNECT_BY_PATH는 각 행의 첫 번째 매개 변수 인 행 번호를 연결하고 두 번째 매개 변수를 분리 자로 사용합니다.