찾고있는 언어가 아닙니다!


181

코드를 찾을 때 성 가시지 않고 어떤 언어로 작성되었는지 모릅니다. 이 도전은 다소 해결하려고합니다.

도전

두 개의 다른 언어로 실행될 때 문자열을 출력하는 프로그램을 작성해야합니다.

This program wasn't written in <language program compiled/interpreted in>, it was built for <other language the program can be run in>!

  • 출력에서 언어 이름에는 공식 대문자가 있어야합니다. 예 : CJam, C ++

  • 두 프로그램 모두 사용자의 입력을받지 않아야합니다.

  • 두 언어로 실행될 때 출력은 stdout 또는 이와 동등한 것이어야합니다.

  • 두 프로그램 모두 stderr에 출력이 없어야합니다.

  • 어느 언어로든 주석을 사용할 수 있습니다.

  • 동일한 언어의 두 가지 버전이 다른 언어로 계산됩니다.

    • 이 작업이 완료되면 프로그램은 주 버전 번호를 출력하고 두 개의 다른 부 버전에서 실행하는 경우 부 버전도보고해야합니다.

    • 사전 빌드 된 버전 기능을 사용하지 않아야합니다 (여기에는 런타임에 이미 평가 된 변수가 포함됨).

출력 예 :

펄과 루비 :

  • 펄 : This program wasn't written in Perl, it was built for Ruby!

  • 루비: This program wasn't written in Ruby, it was built for Perl!

파이썬과 C :

  • 파이썬 : This program wasn't written in Python, it was built for C!

  • 씨: This program wasn't written in C, it was built for Python!

파이썬 2와 파이썬 3 :

  • 파이썬 2 : This program wasn't written in Python 2, it was built for Python 3!

  • 파이썬 3 : This program wasn't written in Python 3, it was built for Python 2!

파이썬 2.4와 파이썬 2.7 :

  • 파이썬 2.4 : This program wasn't written in Python 2.4, it was built for Python 2.7!

  • 파이썬 2.7 : This program wasn't written in Python 2.7, it was built for Python 2.4!

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


2
"동일한 언어의 두 가지 버전이 다른 언어로 계산됩니다." C 이전 및 이전 99 개의 주석과 같은 속임수가 유효합니까? easy ^^
Zaibis

1
또한 역설적이지만 규칙에 적합합니다.
Zaibis

1
아무도 Whitespace / Python 폴리 글롯을하지 않습니까?
찰스는

신경 쓰지 마. 23 구현을 보았습니다
Charles

특정 인터프리터로 실행될 프로그램에 의존하는 것이 입력으로 간주됩니까? 즉, 스위치를 켤 argv[0]까요?
고양이

답변:


86

Foo / CJam, 70 바이트

"This program wasn't written in ""Foo"", it was built for ""CJam"\@"!"

Foo에서는 많은 사람들이 알듯이 큰 따옴표로 모든 것을 인쇄하고 대부분의 다른 문자를 무시하거나 대부분의 경우 출력에 영향을 미치지 않는 것을 수행합니다. 요컨대, \@아무것도하지 않으며 문자열은 모두 그대로 인쇄됩니다.

CJam에서는 \상위 두 항목을 바꾸고 @세 번째 항목을 맨 위로 이동하여 문자열을 올바른 순서로 정렬합니다. 그리고 프로그램이 끝나면 스택에 남은 모든 것이 자동으로 인쇄됩니다.


7
그리고 그것의 재미를 위해, Fission / CJam을위한 비슷한 75 바이트 솔루션이 있습니다 :R"This program wasn't written in ""Fission"", it was built for ""CJam"\@'!O
Martin Ender

3
좋은. 나는 "This program wasn't written in Clip, it was built for CJam!"3{4-_36+e\}/Clip / CJam을 가졌다.
Dennis

5
나는 Foo 솔루션을 게시하기 위해이 스레드에 들어갔습니다. 모든 사람들이 Foo 폴리 글롯을 작성하는 것이 얼마나 쉬운 지 알았습니다.
histocrat

Foo 프로그래밍 언어 사양에 대한 링크가 있습니까?
justhalf

1
@ErikE 설명을 추가했습니다.
jimmy23013

140

C89 / C99, 171 152 136 114 111 107 105 바이트

@Hurkyls, @Qwertiys, @ jimmy23013 및 @MD XF에 힌트를 주셔서 감사합니다.

골프 버전 :

c;main(){c=-4.5//**/
-4.5;printf("This program wasn't written in C%d, it was built for C%d!",90-c,98+c);}

ungolfed 버전 :

c;

main()
{
    c = -4.5//**/
    -4.5;
    printf("This program wasn't written in C%d, it was built for C%d!",90-c,98+c);
}

작은 설명 :

C99 이전 C99는 다음과 같이 여러 줄 주석을 가졌습니다.

/*foo*/

C99로 한 줄 주석이 도입되었습니다. 이처럼 :

//foo

따라서 다음과 같이 라인을 컴파일하면 :

c =-4.5//**/
-4.5;

c99 컴파일러 컴파일 관련 코드는 다음과 같습니다.

c = -4.5 -4.5;

c89 컴파일러 관련 코드는 다음과 같습니다.

(첫 번째 /는 주석의 일부가 아니므로 연산자로 취급)

c = -4.5 / -4.5;

10
놀라운 답변을 위해 +1. C에 익숙하지 않은 사람들에게는 약간의 설명이 좋을 것입니다.
ace_HongKongIndependence

4
@ace 나는 이것이 C99 스타일의 주석에 의존한다고 생각합니다. 네 번째 줄에서을 확인하십시오 //**/. C89에서, 그것은 빈 연산자가 뒤 따르는 나누기 연산자입니다. C99에서 //한 줄 주석을 시작하므로 나머지 줄은 비어 있습니다. 따라서 C89에서는 (90-(-4.5/-4.5))89가되고 (90-(-4.5-4.5)), C99에서는 99가됩니다.
kirbyfan64sos

14
몇 바이트를 저장하려면, 사용하는 188-c대신 c==99?89:99.

1
과제와 함께 공간과 외부 괄호가 필요하다고 생각하지 않습니다.
PurkkaKoodari


88

자바 스크립트 / 루비, 170 바이트

2.0 일 수도 있고, 최소 2.1.5에서는 작동하지 않는 것 같습니다 ... 편집 : @Jordan의 조언에 따라 업데이트 하면 몇 가지 버전에서 작동합니다.

a='1';c=console=console||eval('def c.log s;$><<s end;c');c.log("This program wasn't written in "+(d=['JavaScript','Ruby'])[b= ~(a=~/1/)]+', it was built for '+d[b+1]+'!')

~루비가 =~문자열에서 첫 번째 일치의 위치를 ​​반환하는 정규식 일치로 취급한다는 연산자를 남용합니다 ( 0). 그러나 JavaScript는 = ~/1/이를 -1( 있는 값이 있는 숫자 연산으로 /1/변환 되기 때문에 ) 그대로 취급합니다 .NaN0


이 답변은 Ruby 2.1.5에서 작동하지 않습니다. 내가 얻을 :NoMethodError: undefined method `log' for :log:Symbol
휘장

@EMBLEM 내 테스트는 OS X에 내장 된 Ruby 2.0에서 수행되었는데, 그 이상은 테스트하지 않았지만 다른 버전에서는 잘 깨질 수 있음을 나타내는 주석을 추가 할 것입니다!
Dom Hastings

최신 버전의 Ruby에서 메소드 정의는 메소드 이름을 기호 eval로 리턴하므로을 리턴 :log합니다. 난 당신이 넣어 문제를 해결할 수 있다고 생각 ;cend. 그러나 =~/ = ~트릭은 훌륭합니다!
Jordan

당신은 또한 저장할 수 있습니다. 큰 따옴표 $><<s대신을 사용하여 몇 바이트를 사용 puts s하면에 백 슬래시를 넣을 수 있습니다 wasn\'t.
Jordan

@ 조던 감사합니다! \'그래도 큰 따옴표로 제거를 발견하지 못한 방법을 모르고 $><<언급 한 수정 사항을 적용하고 동일한 바이트 수를 유지할 수 있습니다!
Dom Hastings

82

파이썬 2 / 파이썬 3, 92

"표준"Python 버전 확인 (정수 대 부동 소수점)을 사용합니다.

print("This program wasn't written in Python %d, it was built for Python %d!"%(3/2*2,4-3/2))

3
이것은 샌드 박스 에서 논의되었고 합의는 이런 종류의 것을 허용하는 것이 었습니다
Blue

14
@flawr 파이썬과 코브라가 허용됩니까? ;)
Beta Decay

7
@flawr Python은 실제로 코미디 ~~ group ~~ 신들, Monty Python의 이름을 따서 명명되었습니다.
Mutantoe

@Mutantoe "Monty"는 동물의 이름이 아니고 말장난이 작동하지 않는 것 같습니다.
Pierre Arlaud

57

낚시 / > <> 233217 바이트

v++C-CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC+CCCCCCC-CCCCCCCCCCCCCCCCCCC+CCCCCC
\   "This program wasn't written in ""><>"  ", it was built for Fishing!"
>r!`ol?!;32.                         Fishing                     ><>!`N

낚시 는 물고기를 잡기 위해 걸어 다니는 어부에 근거한 언어입니다. 이 언어로 프로그램을 만들려면 먼저 자신이 걷는 도크를 정의해야합니다. 도크는 프로그램에 대한 제어 흐름 만 제공합니다. 이 프로그램의 독은 다음과 같습니다.

v++C-CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC+CCCCCCC-CCCCCCCCCCCCCCCCCCC+CCCCCC

C명령이 발견 될 때마다 어부는 지시를 받기 위해 자신의 라인을 버립니다. +-지침이 감소 각각 자신의 라인의 길이를 증가. v던지기 방향을 아래쪽으로 바꿉니다. 이 프로그램에서 그가 잡은 물고기는 다음과 같습니다.

`This program wasn't written in Fishing, it was built for ><>!`N

> <> 는 물을 통해 움직이는 물고기를 기본으로하는 언어입니다. 이 v명령은 물고기가 아래쪽으로 이동하기 시작하고 \명령 과 함께 오른쪽에 반영됩니다 . 따옴표 사이의 모든 내용이 스택에 푸시됩니다. 끈을 스택에 밀면 물고기가 반대쪽으로 감싸 져 아래쪽으로 반사됩니다 \. 그런 다음 스택의 내용을 다음과 같이 인쇄합니다.

>r!`ol?!;32.

세 번째 줄의 공백에> <>에 대한 인쇄 루프를 넣으면 코드를 13 바이트 줄일 수 있습니다 (해당 언어를 모르더라도 낚시 부분을 방해하지 않을 것이라고 생각합니다). 이 주석이 전체 코드를 어떻게 처리하는지 잘 모르겠으므로 hastebin 링크가 있습니다 : hastebin.com/quqinozizi (세 번째 줄의 간격을 엉망으로 만들었지 만 모든 것이 올바르게 정렬되었다고 생각합니다).
cole

@Cole 작동합니다. 실제로 당신의 제안은 실제로 16자를 제거합니다.
TheNumberOne

14
물고기와 낚시 폴리 글 로트 ... 아마도 그 종류의 최초!
Mark K Cowan

이거 너무 재밌어요!
D.Tate

55

23 / Malbolge, 5688 바이트

                    bCBA@?>=<;:987
                                                                                        6543210/.-,+*)
                                                                                          ('&%$#"!~}|{zy
                                                                                               xwvutsrqponmlk
                                                                                                  jihgfedcba`_^]
                                                                                     \[ZYXWVUTSRQPO
                                                                                               NMLKJIHGFEDCBA
                                                                                    @?>=<;:9y76543
                                                                210/(L,l*)(!E}
                   |B"!~}|{zyxwvu
                                                                                                     tsrqponmlkjiha
                                                                                                  fed]#a`_^]?zZY
                                                                                         XWVUTSRQ3ONMLK
                   JIHGFEDCBA:^>=
                                                                                                       <;:98705.R21q/
                                                                                               .-,+*#G'&%${"!
                                                                                            x>|{zyxwYutm3k
                                                                                                        ponmlkjihg`&^c
                                                                                     ba`_^]\[ZYXWVO
                   sSRQPONMLEi,HG
                                                                                                      FEDCBA@?>=6Z:9
                                                                                    y76543210/.-,+
                                                                                                          *)('&%$#"y?w|u
                   ;sxwvutm3qSonm
                                                                                                       fkjiha'edcba`_
                                                                                            ^]\[ZYXWVUTSRQ
                   PONM/EiIHGFEDC
                               BA@?>7[;:987w5
                                      432+O/o-,%I)('
                                     &}$#z@~}|{zsxw
                   vutsrqponmlkji
                                                                                                 ha'&dFba`_^]\U
                                                                                            yYXWVUTMRQPONM
                   LKDhH*F?DCBA@?
                                                                                                 8\<;:98765432r
                                                                                        0/.-&J*)('&f$#
                                                                                                       "!~}|{zyxwvuts
                                                                                                       rqj0nmOkjihaf_
                                                                                            %cE[!_^]\[=SwW
                                                                                                     VU7SLpPONMLEJI
                                                                                                          HAeEDC%A@?>=<;
                   :9876543210/.-
                                                                                                       ,+$H('&}${A!xw
                          ={]yxwvutsrk1o
                                                                                                 nmOejib(fedcE"
                                                                                                      `_^]?[ZYRvVUT6
                                                                                     RKo2HMLKJIHAe
                                                                                                           EDCBA@?>=<;:9
                    87w5432+O/.-,
                                                                                                 +*)('&%e#"y?w
                                                                                     |{zs9wvun4rqp
                                                                                                      onmlNjib(fedc
                                                                                           ba`_^]\[ZYXWV
                                                                                                   8TMqKPONMLKDh
                                                                                                      +GFEDCB;_?>=<
                                                                                                    ;:9y7654321*N
                    .-,+*)('&f|{A
                                                                                                       !~}|{]yxwvo5s
                                                                                             rqpinmlkjihg`
                                                                                            &dcbD`_^]\[Tx
                                                                        ;WVUTMRQJnN0F
                                                 KDhH*FEDC<A@?
     >=<5Y92765.R?

프로그램에는 후행 줄 바꿈이 필요합니다. 줄에 공백이 포함되어 있지 않으므로 복사 / 붙여 넣기가 잘 작동합니다.

확인

에서 말레 볼제 코드를 테스트하기 위해 이 온라인 통역 의에 붙여 말레 볼제 코드 영역을 클릭 Load/Reset한 후, Execute.

이 온라인 인터프리터 에서 23 코드를 테스트하려면 소스 영역 에 해당 코드를 붙여넣고을 눌러 Enter후행 줄 바꿈을 삽입 23하고 콘솔 영역에 입력 하고 (기본 23.dezsy 표기법에서 자동 감지로 전환)를 클릭하십시오 Run Interpreter!.


20
야 ... 코드에서 폭탄이 터진 것 같아!
D.Tate

8
o_0 Malbolge 코드 작성 방법
Pavel

55

루아 / C- 182164 바이트

#if 0
print"This program wasn't written in Lua, it was built for C!"--[[
#endif
main(){printf("This program wasn't written in C, it was built for Lua!\n");}/*]]--*/

Lua가 첫 번째 줄의 해시 마크를 주석으로 처리하여 Unix shebang을 허용하는 기능을 활용합니다. 그렇지 않으면 다른 언어의 주석을 자체 주석으로 래핑합니다.

바이트를 줄이려면 GCC 및 Clang에서 경고를 발생시키는 암시 적 동작에 의존합니다. printf의 기본 및 암시 적 정의에 대한 int의 암시 적 선언.


3
매우 영리합니다!
암소는

2
"include <stdio.h>"를 제거하는 것이 너무 극단적이면 답을 되돌릴 것입니다.
benpop

2
//C 부분에서 주석을 사용하지 않는 이유는 무엇 입니까? 2 바이트를 저장합니다.
BrainStone

54

자바 스크립트 / 하스켈, 158 바이트 147 바이트

일반적인 아이디어 : 각 주석 구문을 다른 구문으로 몰래 넣습니다.

한 줄로 :

u="This program wasn't written in ";v=", it was built for ";j="JavaScript";h="Haskell";{-console.log(u+j+v+h+"!")}//-}main=putStrLn$u++h++v++j++"!"

하스켈의 모습 :

-- some variable definitions
u = "This program wasn't written in "
v = ", it was built for "
j = "JavaScript"
h = "Haskell"

-- a comment
{-console.log(u+j+v+h+"!")}//-}

-- the main method that does the dirty deed
main = putStrLn $ u ++ h ++ v ++ j ++ "!"

이것이 JavaScript에 어떻게 보이는지 :

/* variables can be declared without `var` */
u = "This program wasn't written in ";
v = ", it was built for ";
j = "JavaScript";
h = "Haskell";

/* hey look, an anonymous block! */
{ 
  /* we negate the `undefined` that comes out of console.log */
  -console.log(u+j+v+h+"!")
} 
/* there are two automatic semicolon insertions here:
   one before `}` and one before EOF. */

/* a one-line comment. */
//-}main=putStrLn$u++h++v++j++"!"

3
alert골퍼입니다.
wizzwizz4

51

Brainfuck / Foo, 769 바이트

-[--->+<]>-.[---->+++++<]>-.+.++++++++++.+[---->+<]>+++.[-->+++++++<]>.++.---.--------.+++++++++++.+++[->+++<]>++.++++++++++++.[->+++++<]>-.--[->++++<]>-.-[->+++<]>-.--[--->+<]>--.-----.[++>---<]>++.[->+++<]>-.[---->+<]>+++.--[->++++<]>-.-----.---------.+++++++++++..+++[->+++<]>.+++++++++.-[->+++++<]>-.-[--->++<]>-.+++++.-[->+++++<]>-.+[->++<]>.---[----->+<]>-.+++[->+++<]>++.++++++++.+++++.--------.-[--->+<]>--.+[->+++<]>+.++++++++.+++[----->++<]>.------------.-[--->++<]>-.+++++++++++.[---->+<]>+++.--[->++++<]>-.-[->+++<]>-.--[--->+<]>--.+[---->+<]>+++.[->+++<]>++.[--->+<]>-.------------.+++.++++++++.[---->+<]>+++.++[->+++<]>.+++++++++.+++.[-->+++++<]>+++.+++[->++<]>.+[--->+<]>++..[--->+<]>----."This program wasn't written in Foo, it was built for Brainfuck!"

매우 복잡하고 복잡한 대답 ...


21
젠장, 다시는 Foo : D
Beta Decay

5
난 네 생각이 좋아
Pierre Arlaud

13
Brainfuck에서 이것을 실행할 때, Brainfuck은 ,끝에있는 텍스트 때문에 입력을 기다립니다 . 나는 그것이 할당 규칙에 위배된다고 생각합니다.
Simon Forsberg

1
@SimonForsberg 그것은 오랜 시간이지만 온라인으로 시도하는 것과 같은 통역사와 대부분의 다른 사람들 ,은 EOF를 위해 셀을 0으로 설정합니다
Destructible Lemon

41

C / 파이썬, 238 자

요청한 내용을 정확히 100 % 인쇄하지는 않지만 매우 가깝습니다. 발렌타인 데이 카드를
재부팅 합니다 .

#define def main(){0?
#define print printf(
#define return 0)));}
#define pass 0);

def main():
    print "This program wasn't written in ",
    pass
    print "Python",
    print ", it was built for ",
    print "C",
    return

main();

5
정확하지 않은 경우 무엇을 인쇄합니까?
Beta Decay

4
그 중첩 된 printf 일은 훌륭하다…
immibis

4
이것은 C. 연타에 대한 불평이 유효하지 않습니다 def:이후 def main(), 그리고 당신이 실제로 주에 대한 함수의 본체를 열지 마십시오. 실제로 C로 답을 컴파일하려고 했습니까?
C0deH4cker 2016 년

5
#define def main(){0?이 없어졌습니다
kay

3
#define return... 나 좀 울게
corsiKa

32

C / C ++, 136

#include<stdio.h>
int main(){
char*a="++",z=sizeof'c'/2;
printf("This program wasn't written in C%s, it was built for C%s!\n",a+z,a+2-z);
}

서식을 위해 줄 바꿈이 추가되었습니다. C 또는 C ++ 에서 사용해보십시오 .


32
int가 2 바이트 인 플랫폼에있는 경우 어떻게합니까? C + 컴파일러는 어디서 구할 수 있습니까?
immibis

@immibis haha ​​: P 그러나 진지한 메모에 빈 구조체 트릭이 작동 할 수 있습니다.struct{}s;z=2*sizeof s
grc

31

이 비 펀지 / > <> , 141 138 134 133 130 바이트

@Cole 덕분에 3 바이트가 절약 되었습니다 .

정확히 말하면, 나는 Befunge-98을 사용하고 있습니다.

\"!><> rof tliub saw ti ,egnufeB"   >" rof nettirw t'nsaw margorp sih"'T>:#,_@'~~~~~~
>l?v"!egnufeB rof tliub saw ti ,><>"^
?!;>ol

다음과 같은 사실을 사용합니다.

  • \ > <>의 미러이고 Befunge의 스왑
  • 'string'> <>의 문자열이고 'cBefunge의 문자입니다.

Befunge 코드 (필자가 아닌 것 같음)에 필요한 경우가 아니라면, 마지막 줄을?!;>ol
cole

23

PHP / MySQL, 147 바이트

-- $argc;die("This program wasn't written in PHP, it was built for MySQL!");
SELECT("This program wasn't written in MySQL, it was built for PHP!");

17
마지막으로, 나는 좀 이해합니다.
MikeTheLiar

1
두 번째 줄의 괄호를 제거 할 수 있어야합니다. 2 바이트가 더 적습니다.SELECT"This program wasn't written in MySQL, it was built for PHP!";
msh210

2
그러나 PHP에서는 더 이상 작동하지 않습니다. 구문 분석 오류가 발생합니다. SELECT "..."는 유효한 PHP 표현식이 아닙니다.
Razvan

22

파이썬 3 / > <> , (177) 173 172 167 바이트

5 바이트를 줄인 @mathmandan에게 감사드립니다!

글쎄, 이것은 경험이자 시도하는 경험이었습니다. 꽤 긴 골프 제안은 환영합니다. 나는 텍스트를 재사용하기 위해 최선을 다했지만 매우 어려웠다.

기술적으로,이 프로그램이 출력 해야하는 것은 Python 3 일 것입니다 (사양을 충족시키지 않으면 서 파이썬 / C 출력 예제 Python에 나열된 경우 변경할 수 있음 ).

aa=" ni nettirw t'nsaw margorp sihT\"\""
v="><>!"                 #v   "><>"r~/
a=", it was built for "+v#\a
print(aa[-3::-1]+"Pytho" +"n"+a)
#  .4b;!?lor"!nohtyP r"~/

온라인> <> 인터프리터Python 3 인터프리터 에서 시도하십시오 (> <> 인터프리터는 코드를 수동으로 입력해야합니다)

보고

This program wasn't written in ><>, it was built for Python!

> <>에서

This program wasn't written in Python, it was built for ><>!

파이썬에서.

설명 (파이썬)

파이썬의 경우에는 매우 간단합니다. 관심있는 코드는 다음과 같습니다 (기본적으로 주석이없는 코드 #는 Python으로 표시됨 ). 파이썬 \에서는 문자열에서 사용될 때 이스케이프 문자이므로 문자열에서 \"평가됩니다 ".

aa=" ni nettirw t'nsaw margorp sihT\"\""
v="><>!"
a=", it was built for "+v
print(aa[-3::-1]+"Pytho" +"n"+a)

여기서 가장 중요한 것은 변수에 대해 수행되는 작업입니다 aa.

aa[-3::-1]: reverses the string and chops off the quotation marks (thanks to @mathmandan)

따라서 print 서술문은

"This program wasn't written in " + "Pytho" + "n" + ", it was built for ><>!"

설명 (> <>)

이제 우리는 더 어려운 부분에 도달합니다. 다시 한번, 불필요한 비트가 제거 된 코드가 있습니다.

aa=" ni nettirw t'nsaw margorp sihT\"\
                          v   "><>"r~/
a=", it was built for "+v \a

   .4b;!?lor"!nohtyP r"~/

1 행 :

aa=" ni nettirw t'nsaw margorp sihT\"\

aa=         pushes 1 onto the stack (evaluates 10==10, basically)
" ni ... \" pushes the first part plus a \ onto the stack.
\           deflects the pointer downwards

현재 스택 (인쇄 된 경우) : \This program wasn't written in

2 행 :

2 /행은 1 행의 포인터 위치 때문에 시작하여 오른쪽에서 왼쪽으로 이동합니다.

v   "><>"r~/

/     deflects the pointer leftwards
~r    pops the / off the stack and then reverses it
"><>" pushes ><> onto the stack
v     deflects the pointer downwards

지금 스택 : ><> ni nettirw t'nsaw margorp sihT

3 행 :

이전 행과 마찬가지로이 \행은 2에서 포인터를 보내는 곳 에서 시작 합니다. 포인터가 첫 줄에 도달하면 줄을 감싸기 때문에 a포인터가 어디로 가며 (따라서 실행되는지) 순서대로 설명을 작성합니다.

a=", it was built for "+v \a

\aa=       deflect and push 1 onto the stack
", i ... " push the string onto the stack
+v         sum the last two values pushed and deflect

현재 스택 x은 "r"과 공백을 추가하여 형성된 문자입니다. 실제 문자가 아니며 자리 표시 자입니다.

xof tliub saw ti ,><> ni nettirw t'nsaw margorp sihT

4 행 :

포인터는 아래쪽으로 계속 이어 지므로이 줄은 더 이상 설명 할 필요가 없습니다.

5 행 :

시작하여 /왼쪽으로 이동

.4b;!?lor"!nohtyP r"~/

~"r Python!" pops x off and adds back r and a space
r            reverses the stack
o            pops and prints a character
l?!;         pushes the length of the stack and stops if it's 0
b4.          pushes 11 then 4 then moves to that location (where o is)

지금 스택 (출력이 반대로 됨) :

!nohtyP rof tliub saw ti ,><> ni nettirw t'nsaw margorp sihT

그리고 그것은 설명을위한 것이어야합니다. 설명 / 코드 사이에 불일치가 있거나 내가 잘못한 경우 알려주십시오. 설명을 작성하는 동안 코드를 조금 더 축소하여 오래된 코드와 새 코드를 혼합했을 수 있습니다.


파이썬 2가 아니기 때문에 3을 추가해야한다고 말하면 잘못 될 것입니다. 괜찮습니다.
Blue

이것은 단지 파이썬라면, 나는 당신이 대체 할 수있는 생각 aa[:-2][::-1]과 함께 aa[-3::-1]. 물론이 경우> <> 형식을 방해 할 수 있지만 아직 그렇지 않은 경우 고려해 볼 가치가 있습니다. 특히 v이전 줄의 아래에 공백이 필요하다고 확신 하지만 print(aa[-3::-1]+"Pytho"아래 24 문자에 맞는 것처럼 보이면 a=", it was built for "+공백 다음에 공백을 넣을 수 +"n"+a)있습니다. 이것이 다른 것을 깨뜨릴 지 확실하지 않지만 작동하면 몇 바이트를 절약 할 수 있습니다.
mathmandan

@mathmandan 좋은 생각입니다. 코드를 업데이트하고 크레딧을드립니다.
cole

좋은 작업! 참고로, 이것은 Python 2에서 잘 작동한다고 생각합니다 .Python 2에서는 print 문에 괄호를 삭제하여 바이트를 절약 할 수 있습니다 print aa[-3::-1]+"Pytho" +"n"+a. 그러나 또 다른 질문 :> <> 버전에서 1원래 스택에 푸시 된 것은 어떻게됩니까?
mathmandan

@mathmandan 필자가 사용한 인터프리터가 유효하지 않거나 문자가 전혀 표시되지 않으면 문자를 인쇄하지 않는다고 생각합니다. 나는 그 문자를 인쇄하는 것이 중요하지 않은 이유를 100 % 확신하지 못한다. 실수로 발견했습니다.
cole

19

배치 .BAT 파일 / 배치 .CMD 파일, 194 185 바이트

@ECHO OFF
SET a=BAT
SET b=CMD
CALL :F&&GOTO :C||GOTO :O
:C
SET a=CMD
SET b=BAT
:O
ECHO This program wasn't written for %a% File, it was built for %b% File!
GOTO :EOF
:F
md;2>nul
SET v=1

편집 : 9 바이트를 저장 !하고 DLosc 덕분에 누락 된 부분을 수정했습니다.

예, BAT와 CMD 파일 사이에는 차이가 있습니다. 참고. 본질적으로 CMD는 ERRORLEVELon 명령을 설정 SET하지만 BAT는 그렇지 않습니다. 여기서 ERRORLEVEL잘못된 md명령으로 설정된 집합 SET v=1은 한 버전에서는 지워지지 만 다른 버전에서는 지워지지 않습니다. 이 스크립트는 해당 뉴스 그룹 스레드에서 "Ritchie"가 제공 한 예제를 기반으로합니다.

위의 단축 스크립트 는 ENABLEEXTENSIONS설정된 것으로 가정 합니다 ON(기본적으로 모든 플랫폼에서). 아래의 확장 된 스크립트는 정확한 기능을 보장하기 위해 명시 적으로 설정합니다. 그없이, SETCMD에 대한 명령은 모든 확장을 허용하지 않으며, (일부 시스템에서, 아마도)을 설정하지 않을 수 있습니다 ERRORLEVEL적절하게.

확장 및 비고

@ECHO OFF
setlocal ENABLEEXTENSIONS

REM Call the :FUNC subroutine and branch based on the resulting errorlevel
CALL :FUNC&&GOTO :CMD||GOTO :BAT

REM Just in case. If we reach this, though, hoo-boy ...
GOTO :EOF

:BAT
REM We're a BAT file, so set variables and goto output
SET a=BAT
SET b=CMD
GOTO :OUTPUT

:CMD
REM We're a CMD file, so set variables and goto output
SET a=CMD
SET b=BAT
GOTO :OUTPUT

:OUTPUT
REM Print out the result, then go to end of file
ECHO This program wasn't written for %a% File, it was built for %b% File!
GOTO :EOF

:FUNC
REM Simple subroutine to set the ERRORLEVEL appropriately
md;2>nul
REM Right now, ERRORLEVEL on both CMD and BAT is 1
SET v=1
REM Right now, ERRORLEVEL on CMD is 0, but BAT is still 1

... CMD와 BAT의 차이점이 있습니까?
Stan Strum


16

CJam / GolfScript, 81 78 바이트

"This program wasn't written in "o"GolfScript"", it was built for ""CJam"oo"!"

원본 81 바이트 버전 :

"This program wasn't written in "["CJam"", it was built for ""GolfScript"]-1a%"!"

14

PHP / 펄, 98 96 바이트

$a="HP";$b="erl";
//;$a=$b;$b=HP;
print"This code wasn't written in P$a, it was built for P$b!";

내가 <?태그를 쓰지 않고 PHP를 실행하는 유일한 방법 은 다음과 같은 것이기 때문에 이것이 부정 행위인지 아닌지는 Dunno php -r $(cat codefile.php)입니다. 그러나 그것이 합법적이라고 가정하면 ... //PHP 주석이지만, Perl에서는 정규 표현식입니다 (명세서 자체로는 아무것도하지 않습니다). 나머지는 설명이 필요합니다.

편집 : 이제 Perl 전용 부분에서 베어 워드를 사용합니다. 나는 두 언어 모두에 대해 처음부터 그것들을 사용하고 싶었지만 PHP는 "stderr에 출력이 없어야한다."와 반대로 경고를 표시합니다.


1
<?'>#';두 언어 모두에서 유효한 구문입니다.
primo

14

루비 / 파이썬, 105 자

a=["Ruby","Python"];a.sort();print("This program wasn't written in "+a[0]+", it was built for "+a[1]+"!")

정말 좋습니다! 나는 특히 사용 된 의견이 없다는 것을 좋아한다.
styfle

14

자바 스크립트 1.8 / 자바 스크립트 1.7, 89 바이트

a=![].reduce;`This program wasn't written in JS 1.${8-a}, it was built for JS 1.${7+a}!`

Array.prototype.reduce 는 1.8에서 새로운 것이기 때문에

편집 :a 사용하지 않고 직접 초기화하여 7 바이트 골프reverse()

편집 : JavaScript로 쓸 수 있으며JS 8 바이트를 절약

편집 : 변수를 b더 이상 사용하지 않으면 3 바이트를 더 절약 할 수 있다고 지적한 Hedi에게 감사드립니다 .

편집 : 컴퓨팅으로 6 바이트 골프7+a 하고 8-a, a=1정의 줄이면 (JS 1.8)과 a=0하면이 정의되지 않은 (JS 1.7)

편집 : Hedi는 템플릿 문자열 사용을 제안하는 6 바이트를 더 골랐습니다.

편집 : ETHproductions a=!![].reduce;대신 2 바이트 제안 골프a=[].reduce?1:0;

편집 : no1xsyzy는 부울 검사를 취소 할 것을 제안하는 1 바이트를 더 골랐습니다.


"JavaScript"대신 "JS"로 두 번 "JS 1"사용 문자열에서 변수 b를 사용하는 것보다 짧습니다.
Hedi

템플릿 문자열을 사용하여 더 짧게 만들 수 있습니다.`이 프로그램은 JS 1. $ {7 + a}로 작성되지 않았습니다. JS 1. $ {8 + a}를 위해 제작되었습니다! '
Hedi

2
내가 생각하는 당신이 변경하여 2 바이트를 저장할 수 있습니다 a=[].reduce?1:0;a=!![].reduce;.
ETHproductions

@ETHproductions 감사 합니다만, 작동하지 않을 것 같습니다. 내가 필요한 a값 개최 1하거나 0,하지 true또는false
마리오 Trucco

@ETHproductions 죄송합니다, 당신이 옳아 요, 시도하고 작동합니다. 감사!
마리오 트루 코

13

SWI- 프롤로그 6 / SWI- 프롤로그 7, 156 바이트

P='SWI-Prolog ',A=6,B=7,(is_list(""),N=A,M=B;N=B,M=A),atomic_list_concat(['This program wasn\'t written in ',P,N,', it was built for ',P,M,'!'],W),write(W).

""7보다 오래된 SWI-Prolog 버전에서는 큰 따옴표 가 문자열 코드 (즉, 문자 코드 목록)이므로 버전 7에서는 올바른 문자열 유형 is_list("")이므로 버전 7에서는 false이고 이전 버전에서는 true입니다.


12

BF / SPL, 5342 바이트

이것이이 사이트의 첫 셰익스피어 프로그래밍 언어 폴리 글로 트라고 확신합니다.

아마도 어떤 상도받지 못할 것입니다. BF 코드를 연기 / 장면 / 프로그램 타이틀에 몰래 사용합니다. SPL 코드는 몇 가지 경우를 제외하고 마침표 대신 느낌표를 사용합니다. 프로그램은 입력을받지 않아야하므로 문자 선언의 쉼표는 셀을 제로화하고 쉼표 주위에 대괄호를 사용하여 "주석"으로 표시됩니다. enter / exeunt 문 주위에 대괄호를 숨길 때도 동일한 절차가 적용됩니다.

[-][.
Ford,.
Page,.
Act I:]+++++++++[>+++++++++<-]>+++.
Scene I:>[.
[Enter Ford and Page]
Ford:
You is sum of bad bad bad bad bad bad day and sum of bad bad bad bad day and bad bad day!Speak thy mind!
Scene II:]<<++[>++++++++++<-]>.
Page:
You is sum of bad bad bad bad bad bad day and sum of bad bad bad bad bad day and bad bad bad day!Speak thy mind!
Scene III:+.
Page:
You is sum of thyself and day!Speak thy mind!
Scene IV:++++++++++.
Page:
You is sum of thyself and sum of bad bad bad day and bad day!Speak thy mind!
Scene V:>++++[>++++++++<-]>.
Ford:
You is fat fat fat fat fat cat!Speak thy mind!
Scene VI:[-<+>]<<---.
Page:
You is sum of thyself and sum of big pig and pig!Speak thy mind!
Scene VII:++.
Page:
You is sum of thyself and fat cat!Speak thy mind!
Scene VIII:---.
Page:
You is sum of thyself and sum of big pig and pig!Speak thy mind!
Scene IX:--------.
Page:
You is sum of thyself and big big big pig!Speak thy mind!
Scene X:+++++++++++.
Page:
You is sum of thyself and sum of fat fat fat cat and sum of fat cat and cat!Speak thy mind!
Scene XI:<++++[->----<]>-.
Page:
You is sum of thyself and sum of big big big big pig and pig!Speak thy mind!
Scene XII:++++++++++++.
Page:
You is sum of thyself and sum of fat fat fat fat cat and big big pig!Speak thy mind!
Scene XIII:>.
Ford:
Speak thy mind!
Scene XIV:<++++++++++.
Page:
You is sum of thyself and sum of fat fat fat cat and fat cat!Speak thy mind!
Scene XV:<++++[->-----<]>--.
Page:
You is sum of thyself and sum of big big big big big pig and sum of fat fat fat cat and fat cat!Speak thy mind!
Scene XVI:<++++[>++++<-]>++.
Page:
You is sum of thyself and sum of fat fat fat fat cat and fat cat!Speak thy mind!
Scene XVII:-----.
Page:
You is sum of thyself and sum of big big pig and pig!Speak thy mind!
Scene XVIII:>+++++++.
Ford:
You is sum of thyself and sum of fat fat fat cat and pig!Speak thy mind!
Scene XIX:<++++++.
Page:
You is sum of thyself and sum of fat fat cat and fat cat!Speak thy mind!
Scene XX:>-------.
Ford:
You is sum of thyself and sum of big big big pig and cat!Speak thy mind!
Scene XXI:<+++.
Page:
You is sum of thyself and sum of fat cat and cat!Speak thy mind!
Scene XXII:-----.
Page:
You is sum of thyself and sum of big big pig and pig!Speak thy mind!
Scene XXIII:---------.
Page:
You is sum of thyself and sum of big big big pig and pig!Speak thy mind!
Scene XXIV:+++++++++++.
Page:
You is sum of thyself and sum of cat and sum of fat cat and fat fat fat cat.Speak thy mind!Speak thy mind!
Scene XXV:<+++[>-----<-]>.
Page:
You is sum of thyself and sum of big big big big pig and cat!Speak thy mind!
Scene XXVI:+++++++++.
Page:
You is sum of thyself and sum of fat fat fat cat and cat!Speak thy mind!
Scene XXVII:>.
Ford:
Speak thy mind!
Scene XXVIII:<-----.
Page:
You is sum of thyself and sum of big big pig and pig!Speak thy mind!
Scene XXIX:+++++.
Page:
You is sum of thyself and sum of fat fat cat and cat!Speak thy mind!
Scene XXX:>.
Ford:
Speak thy mind!
Scene XXXI:[->++<]>++.
Page:
You is sum of thyself and sum of big big big big big pig and sum of fat fat cat and cat!Speak thy mind!You is sum of thyself and sum of big pig and pig!Speak thy mind!
Scene XXXII:++++.
Page:
You is sum of thyself and big red hog!Speak thy mind!
Scene XXXIII:<+++++[>-----<-]>-.
Page:
You is sum of thyself and big big big big big pig!Speak thy mind!
Scene XXXIV:[-<+>]<------------.
Ford:
Speak thy mind!
Scene XXXV:<-----.
Page:
You is sum of thyself and sum of fat fat fat fat fat fat cat and sum of big pig and pig!Speak thy mind!
Scene XXXVI:+++++++++++.
Page:
You is sum of thyself and sum of fat fat fat cat and sum of fat cat and cat!Speak thy mind!
Scene XXXVII:>.
Ford:
Speak thy mind!
Scene XXXVIII:<+++.
Page:
You is sum of thyself and sum of fat cat and cat!Speak thy mind!
Scene XXXIX:<++++[->-----<]>--.
Page:
You is sum of thyself and sum of big big big big big pig and sum of fat fat fat cat and fat cat!Speak thy mind!
Scene XL:<++++[>++++<-]>++.
Page:
You is sum of thyself and sum of fat fat fat fat cat and fat cat!Speak thy mind!
Scene XLI:>.
Ford:
Speak thy mind!
Scene XLII:<<++++[>----<-]>-.
Page:
You is sum of thyself and sum of big big big big pig and pig!Speak thy mind!
Scene XLIII:<+++++[>++++<-]>-.
Page:
You is sum of thyself and sum of fat fat fat fat cat and sum of fat cat and cat!Speak thy mind!
Scene XLIV:------------.
Page:
You is sum of thyself and sum of big big big big pig and fat fat cat!Speak thy mind!
Scene XLV:+++.
Page:
You is sum of thyself and sum of fat cat and cat!Speak thy mind!
Scene XLVI:++++++++.
Page:
You is sum of thyself and fat fat fat cat!Speak thy mind!
Scene XLVII:>.
Ford:
Speak thy mind!
Scene XLVIII:<--------------.
Page:
You is sum of thyself and sum of big big big big pig and fat cat!Speak thy mind!
Scene XLIX:+++++++++.
Page:
You is sum of thyself and sum of fat fat fat cat and cat!Speak thy mind!
Scene L:+++.
Page:
You is sum of thyself and sum of fat cat and cat!Speak thy mind!
Scene LI:>.
Ford:
Speak thy mind!
Scene LII:>+++++++[<+++++++>-]<++.
Page:
You is sum of thyself and sum of big big big big big pig and big big big big pig!Speak thy mind!
Scene LIII:---.
Page:
You is sum of thyself and fat fat cat!Speak thy mind!
Scene LIV:----.
Ford:
You is sum of thyself and cat!Speak thy mind!
Scene LV:>+++++++[<------>-]<-.
Ford:
You is cat!
Scene LVI:>[.
[Exeunt]

https://repl.it/E8Hh/23 에서 BF를 테스트 하십시오 .

SPL 코드는 https://github.com/drsam94/Spl/ 에있는 컴파일러에서 테스트되었습니다 .


11

루비 1.8 / 루비 1.9, 87

puts"This program wasn't written in Ruby 1.#{?9%49}, it was built for Ruby 1.#{?8%47}!"

Ruby 1.8에서는 ?98 모듈로 49 인 "9"의 ASCII 값입니다. Ruby 1.9에서는 문자열 "9"이며 %49"9"에는 형식 문자열이 없으므로 아무 것도 수행하지 않는 형식화 조작입니다. 그것.


11

Python 2.7.9 / Python 2.7.10, 127 바이트

우리는 부 버전을 사용하는 몇 가지 게시물을 가지고 있지만 다음 단계로 넘어간 것은 없습니다 ...

import types
n=len(dir(types))
print"This program wasn't written in Python 2.7.%d, it was made for Python 2.7.%d!"%(n%33,-n%52)

Ideone (Python 2.7.10) 에서 시도 하고 repl.it (기술적으로 Python 2.7.2이지만 2.7.9와 동일한 결과를 제공해야 함 .

changelog 에 따르면 Python 2.7.10 :

모듈에 __all__를 추가했습니다 types.

이것은 len(dir(types))42에서 43으로 밀려서 원하는 출력을 생성하기 위해 활용할 수있는 수치 적 차이를 제공합니다.


10

파이썬 / Q 기본, 160 142 바이트

Python 3QBasic 1.1에서 테스트되었습니다 . from __future__ import print_function4 행에 추가하지 않으면 Python 2에서 작동하지 않습니다 .

1# DEFSTR A-B
a = "QBasic"
b = "Python"
'';a,b=b,a;PRINT=print
PRINT ("This program wasn't written in " + a + ", it was built for " + b + "!")
  • 파이썬에서는 1#표현식 1(no-op)과 주석이 있습니다. QBasic에서는 행 번호입니다 (형식 접미사가으로 표시 DOUBLE). 이 DEFSTR명령문은 QBasic에 이름이 시작 A하거나 B대소 문자를 구분하지 않는 모든 변수 가 문자열 변수 임을 QBasic에 알려줍니다 . 그런 식으로, 우리는 우리의 변수를 호출 할 수 ab대신 a$하고b$ (파이썬에서 작동하지 않을 것이다).
  • QBasic에서 '주석을 시작합니다. Python ''에서 빈 문자열 (no-op)입니다. 그런 다음 언어 이름을 바꾸고print 바꾸고 함수 (QBasic 키워드는 대문자로 자동 서식 지정되므로).
  • 마지막 줄의 괄호는 QBasic에서는 필요하지 않지만 아무 것도 해치지 않습니다.

자동 포맷터 를 끌 수 있다면 ( 원래 QBasic은 아니지만 QB64 의 옵션 ) Python 2를 사용하여 114 바이트 로 줄일 수 있습니다 .

1#DEFSTR A-B
a="QBasic"
b="Python"
'';a,b=b,a
print"This program wasn't written in "+a+", it was built for "+b+"!"

-3 바이트 : 실제 QB64로 전환하십시오.
CalculatorFeline

자동 서식.
CalculatorFeline

QB64 / Python 2는 131 바이트입니다! 또는 133 바이트의 Python 3
CalculatorFeline

9

펄 / 루비, 129 바이트

0&&eval('def sort a,b;[b,a] end');printf"This program wasn't written in %s, it was built for %s!",(@a=sort"Perl","Ruby")[0],@a[1]

이것에 대한 정규 표현 남용은 없습니다. 루비에서 0이 (실제로 s)에 eval대한 정의에 진실이라는 사실을 최대한 활용하십시오. 루비는 인수 목록을 사용하는 것을 좋아하지 않았기 때문에 각각을 개별적으로 수행해야했습니다.sortreverseprintf


a로컬 변수가 아닌 인스턴스 변수 여야하는 이유는 무엇 입니까?
Nic Hartley

@QPaysPerl의 @변수에 대한 sigil을 세금으로 묶는 것은 그것이 Perl에서 저장하는 $a대신 목록이라는 것을 나타냅니다 .
Dom Hastings

아, 알겠습니다 설명 주셔서 감사합니다.
Nic Hartley

9

///망막 95 + 3 = 98 바이트

/
//

This program wasn't written in \/\/\/, it was built for Retina!
/?./....(.*)(R.*)!
$2$1///!

+3 바이트 -sRetina 플래그는 .

///에 대한 설명

첫 번째 명령은

/
//

나머지 코드에서 모든 줄 바꿈을 제거하여 결과적으로

This program wasn't written in \/\/\/, it was built for Retina!/?./....(.*)(R.*)!$2$1///!

의 모든 것은 !리터럴이며 STDOUT에 인쇄됩니다. 다음 지시는

/?./....(.*)(R.*)!$2$1/

그러나 검색 문자열 ?.을 찾을 수 없으므로 아무 일도 일어나지 않습니다. 그런 다음 나머지 코드는//! 불완전한 명령이므로 프로그램은 올바른 문자열을 인쇄하여 종료됩니다.

Retina에 대한 설명

/
//

이것은 Retina에게로 교체 /하도록 지시 //합니다. 그러나 입력이 비어 있으므로 일치하지 않습니다.

<empty>
This program wasn't written in \/\/\/, it was built for Retina!

입력이 두 번째 줄의 문자열로 바뀝니다.

/?./....(.*)(R.*)!
$2$1///!

이것은 문자열 \/\/\/, it was built for Retina!과 일치하고 Retina, it was built for ///!올바른 결과를 제공하기 위해 이를 대체합니다 .


알다시피, 나는 ... 망막 및 RS 사이에 하나를 할 사소한 것이라고 생각)
kirbyfan64sos

@ kirbyfan64sos 아마, 얼마나 짧을까요? ;)
Martin Ender

글쎄, 지금까지 나는 85 바이트 + 3 정도를 얻었 -s지만, 내가 한 일이 재미를 망칠 것이라고 말했지만! : D
kirbyfan64sos

1
@ kirbyfan64sos 계속해서 게시하면 곧 rs를 볼 시간이 없다고 생각합니다.
Martin Ender

9

sed / 16 진수 251 바이트

/$/cThis program wasn't written in sed, it was built for Hexagony!
#...>32;p;r;o;g;r;\+/;a;w;23+;m;a<.;.>s;n;+39;t;+32\s/;n;e;;t;i;r;w;<. |.>+32;i;n;+32;H;e\ ;/4+;y;n;o;g;a;x;< i>4;+32;i;t;+32;\;/u;b;23+;s;a;w<h>;i;l;t;+32;f\;/;s;23+;r;o;< T>e;d;+33;@

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


sed에서는 끝에있는 빈 문자열 (항상)과 일치하면 올바른 문자열을 인쇄합니다. 두 번째 줄은 주석입니다. STDIN에는 문자열이 필요하지만 비어있을 수 있습니다 ( 이 합의에 따라 허용됨 ).

예:

echo '' | sed -f whatLanguage.sed

Hexagony에서 첫 번째 /는 왼쪽 아래로 리디렉션되고 왼쪽을 따라 sed 부분이 시작되는 위치까지 옮긴 다음 왼쪽에서 오른쪽으로, 줄 아래로, 오른쪽에서 왼쪽으로, 줄로 줄 바꿈합니다. 확장 된 16 진수는 다음과 같습니다.

         / $ / c T h i s p r 
        o g r a m w a s n ' t 
       w r i t t e n i n s e d 
      , i t w a s b u i l t f o 
     r H e x a g o n y ! # . . . 
    > 3 2 ; p ; r ; o ; g ; r ; \
   + / ; a ; w ; 2 3 + ; m ; a < .
  ; . > s ; n ; + 3 9 ; t ; + 3 2 \
 s / ; n ; e ; ; t ; i ; r ; w ; < . 
| . > + 3 2 ; i ; n ; + 3 2 ; H ; e \ 
 ; / 4 + ; y ; n ; o ; g ; a ; x ; < 
  i > 4 ; + 3 2 ; i ; t ; + 3 2 ; \
   ; / u ; b ; 2 3 + ; s ; a ; w <
    h > ; i ; l ; t ; + 3 2 ; f \
     ; / ; s ; 2 3 + ; r ; o ; < 
      T > e ; d ; @ . . . . . .
       . . . . . . . . . . . .
        . . . . . . . . . . .
         . . . . . . . . . .

나는 Hexagony를 이해하지 못할 것입니다 ...
DJgamer98

@ DJgamer98 나도 그것을 이해하지 못한다. 이것을 처음 사용하는 것입니다.
Riley

;현재 셀 모드 256을 사용하여 바이트 값을 결정하는 사실을 사용하여 Hexagony를 약간 단축 할 수 있습니다 (예 : P0;현재 셀 값에 관계없이 공백을 인쇄 할 수 있음 ). 이 CJam 스크립트는 모든 쌍을 생성 cjam.tryitonline.net/...을
마틴 청산을

9

파이썬 / 망막 133 120 119 117 115 바이트

Retina와 regexes에 대해 더 많이 알고 있으므로 골프를 조금 더 했어요. 실제로 작동합니다.

#?.*
print"This program wasn't written in Python, it was built for Retina!"
#?.*t"

#?(\w+)(,.* )(.+)!"
#$3$2$1!
#

파이썬은 문장을 인쇄합니다. Retina는 Python print 문으로 대체 한 다음 print및 따옴표 를 제거 합니다. 그럼, 교환 PythonRetina및 제거 #.

파이썬에서보십시오 | 망막에서 시도



@ jimmy23013이 챌린지가 게시 될 당시에는 한도가 없습니다. 그것은 Retina의 비교적 새로운 기능입니다.
mbomb007


8

자바 스크립트 / 커피 스크립트, 125 124 바이트

console.log("This program wasn't written in",(a=['Coffee','Java'])[+(b=0=='0')]+"Script, it was built for",a[b^1]+"Script!")

CoffeeScript에서는 a==b로 컴파일 a===b되어 중간 조건이 false가됩니다. 부울 값을 정수로 변환하기 위해 약간의 마술을 사용했습니다.

@DomHastings 덕분에 1 바이트를 절약했습니다!

125 바이트 버전 :

console.log("This program wasn't written in",(a=['Coffee','Java'])[(b=0=='0')+0]+"Script, it was built for",a[b^1]+"Script!")

좋은! +(b=0=='0')대신 바이트를 절약 할 수 있다고 생각합니다 +0!
Dom Hastings

대신에 b^1, 당신이 사용할 수 있다고 생각합니다~b
Ismael Miguel

트윗 담아 가기 그것은 그것을 위해 지어 졌다고 말합니다 undefinedScript.
kirbyfan64sos

나는 그것을 잊었다 ~1 == -2. 그러나 (b=0=='0')+0로 쓸 수 있습니다 +(b=0=='0'). 또는 b=+(0=='0'). 1 바이트를 잘라야합니다.
Ismael Miguel

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