영숫자 Hello World [닫기]


43

당신의 목표는 "Hello, World!"라고 쓰는 것입니다. (따옴표 제외). 이것은 이므로 대부분의 투표가 이깁니다. 코드 길이는 관계를 끊는 데 사용됩니다.
다음 규칙에 해당되는 한 모든 것이 진행됩니다.

  • 모든 문자는 문자 또는 숫자 여야하므로 문자열 "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"의 문자 만 사용할 수 있습니다.
  • 가져온 모듈 / 클래스 / 원하는 언어로 호출 된 것을 제외하고 사용하는 모든 코드는 하나의 파일에 있어야합니다.
  • 선택한 언어에 대한 표준 라이브러리 / 프레임 워크 만 허용됩니다 (예 : Python의 수학 모듈은 허용되지만 Numpy, Scipy 및 Pygame은 허용되지 않음). 파이썬에서 GUI의 사실상 표준 인 TkInter를 허용 할 것입니다.
  • stdin에서 읽거나, 파일을 읽거나, 이미지를 표시하거나, 웹을 읽는 등의 입력은 허용되지 않습니다.

규칙을 구부리지 않고 Java 로하는 방법을 알아 내면 브라우니 포인트 +10


마크에 코드를 설정하십시오!

편집 : 중괄호 ({}), 괄호 ([]) 및 괄호 (())는 대부분의 언어가 없으면 거의 불가능하므로 허용됩니다. 문자 제한 규칙도 제거하고 있습니다. 잘하면 이것이 더 흥미로워 질 것입니다.

편집 ^ 2 : 공백도 허용됩니다. 뇌가 제대로 작동하지 않습니다. 죄송합니다. >. <


1
당신까지, 나는 단지 확인하고 있습니다. 공백은 어떻습니까?
Geobits

1
아, 오른쪽 공백. 내 뇌가 오늘 제대로 작동하지 않습니다. 허용되어야합니다. 잠깐, 규칙을 고치겠습니다.
wec

8
운영자가 없습니까? 그리고 가장 중요한 것은 아닙니다 ;. C로 무엇을 쓸 수 있습니까?
Oberon


3
자연스럽게 J를 배제하는 방법을 알아 내기 위해서는 +1 : 72 101 108 108 111 44 32 87 111 114 108 100 33{a.마지막에 일하는 기간이 필요하고 u:비슷한 경로 에는 콜론이 필요합니다. 없이 .그리고 :우리는 아무것도 아니다.
algorithmshark

답변:


103

어떤 사람들은 perl이 ascii noise와 random symbols로 가득 찬 언어라고 말합니다 $. 그것은 사실이 아닙니다. : P

s zzHelloq worldmz and s zqzchr 44ze and s zmzchr 33ze and print

이것을 하위 표현식으로 나누겠습니다.

(s zzHelloq worldmz) and (s zqzchr 44ze) and (s zmzchr 33ze) and (print)
모든 표현식이 true를 반환하는 한 왼쪽에서 오른쪽으로 실행됩니다. 그러나 지구상에서 무엇 s zqzchr 44ze입니까?

펄에서의 그룹이있다 "따옴표와 같은 사업자" 포함 q(str), qw(li st), /regex/, s/from/to/다른 것들 사이. 이 연산자는 모두 거의 모든 문자를 델리 미터로 사용할 수 있으며 몇 가지 세부 사항이 있습니다. 여는 괄호는 일치하는 닫는 괄호로 닫아야 하며 문자를 구분 기호로 사용하려면 공백을 넣어야합니다 연산자 문자 뒤에 (간결하게 표시하기 위해).

이 경우 s///(정규 대체) 연산자 의 세 가지 용도가 있습니다 .

s//Helloq worldm/
s/q/chr 44/e
s/m/chr 33/e
모두 문자로 구분됩니다 z. /e마지막 두에 플래그는 대체 코드를 평가하기보다는 문자 텍스트를 해석됩니다.

perl에 대해 잘 알려진 사실은 $_달리 지정하지 않는 한 대부분의 작업은 기본적으로 내장 변수 에서 작동하는 것 입니다. 이 세 가지 치환 과이 경우 모두 print작동 $_하므로 먼저 Hello world라는 단어를 변수에 넣은 다음 문자의 숫자 ASCII 값을 사용하여 문장 부호를 수정 한 다음 변수의 내용을 인쇄합니다.


46
+1 도대체 무슨 일인지 모르겠지만 작동합니다!
squeamish ossifrage

95
@squeamishossifrage 그것은 perl 모토 일 수있다
mniip

6
가능하다면 작은 설명을 추가 하시겠습니까?
ace_HongKongIndependence

10
나는 결코 전문가는 아니지만 펄에서 대체는 일반적으로로 표시 s/PATTERN/REPLACEMENT/FLAGS되지만 실제로 슬래시 대신 원하는 모든 것을 사용할 수 있습니다. 여기서 코드는 슬래시 대신 "z"를 사용하고 (아무것도) "Helloq Worldm"으로 바꾼 다음 chr 44에 대해 "q"를 바꿉니다 (\ e 플래그를 사용하여 REPLACEMENT 일명 "chr 44"를 식으로 평가). ". 그런 다음 "m"을 chr 33, "!"로 바꾸고 인쇄합니다.
Amory

3
따옴표와 같은 연산자에서 @ace, 예를 들어 q//모든 구분 기호를 사용할 수 있습니다 q!! q** q\\ q;;. 몇 가지 예외가 종료한다는 것이다 (사용 ), q() q[] q{} q<>, 그것은 예를 허용하지 모호성에 운영자 이격되어야하고, 그 구분 기호로 알파벳과 숫자를 사용 q qq, q 66. 다른 인용문과 같은 연산자에도 동일한 트릭이 적용됩니다.
mniip

73

int main(void) {
  if (putchar(72))
    if (putchar(101))
      if (putchar(putchar(108)))
        if (putchar(111))
          if (putchar(44))
            if (putchar(32))
              if (putchar(87))
                if (putchar(111))
                  if (putchar(114))
                    if (putchar(108))
                      if (putchar(100))
                        if (putchar(33)) 
                        {
                        }
}

4
대박! 그것은 C로 할 수있다. 그리고 나는 이것을 이길 것이라고 생각했다.
Level River St

2
@ace 사례가 정의 된 경우에만 해당됩니다. 다음과 같이 쉽게 다시 작성할 수 있습니다 switch(putchar(72)){}switch(putchar(101)){}.
Comintern

27
–1putchar(putchar(108))
Ilmari Karonen

2
쉼표에 대한 "if (putchar (44))"가 누락되었습니다.
Desty

1
잘, 질문에서 쉼표를 어떻게 그리워했는지 확실하지 않습니다. 결정된.
mattnewport

49

(편집-BBC 기본은 제안대로 별도의 답변으로 옮겼습니다. 이것에 대한 대부분의 투표는 로고 답변에 대한 것입니다.)

심벌 마크

http://www.calormen.com/jslogo/#의 통역사

TO h        pd  fd 100 rt  90  pu  fd 50  rt 90  pd  fd 100  rt 180 fd 50  lt 90  fd 50  rt 90  pu END 
TO e        pu  fd 25  rt  90  pd  fd 25  rt 90  arc 270 25  lt 90  fd 25  lt 90  pu END  
TO l        pd  fd 100 pu  END  
TO o        rt  45 fd  35  pd  arc 360 25  lt  45  pu END 
TO comma    pd  rt 90  arc 90  15  lt  90  pu END 
TO w         l  rt 180 l   pd  lt  135 fd  35  rt  90  fd 35  lt 135  l  END  
TO r        pd  fd 25  rt  90  pu  fd  25  rt 180  arc 180 25 rt 90 END 
TO d         o  rt 135 fd  35  lt  135  l  END      
TO exclaim arc 360 5   fd  10  l  END 

clearscreen  
setpencolor 4 pu 
setxy 0 150      h 
setxy 100 150    e  
setxy 200 150    l 
setxy 250 150    l 
setxy 300 150    o 
setxy 350 150    comma  
setpencolor 1 
setxy 0 0        w 
setxy 100 0      o 
setxy 200 0      r  
setxy 300 0      l 
setxy 350 0      d 
setxy 450 0      exclaim 
fd 100

출력 (녹색 삼각형은 거북이 커서입니다)

여기에 이미지 설명을 입력하십시오


2
이 답변을 두 가지로 나눠야합니다.
Justin

@WallyWest 나는 언어를 거의 알지 못했지만 그것은 직업을위한 도구였습니다. 텍스트도 인쇄 할 수 있지만 (도면에 레이블이라고 함) 이에 대한 따옴표가 필요합니다 (열기 인용 만 필요하고 닫는 인용 부호는 선택적이라고 생각합니다)
Level River St

1
단어를 인쇄하는 대신 그리기 +1
wec

@steveverril 두 번째 따옴표는 실제로 구문 오류입니다.
01 초에 tomsmed

29

애플 스크립트

이 중 괄호 [], 중괄호 {}또는 괄호 ()는 전혀 없습니다 .

set s to ASCII character 72
set s to s as list
set end of s to ASCII character 101
set end of s to ASCII character 108
set end of s to end of s
set end of s to ASCII character 111
set end of s to ASCII character 44
set end of s to space
set end of s to ASCII character 87
set end of s to item 5 of s
set end of s to ASCII character 114
set end of s to third item of s
set end of s to ASCII character 100
set end of s to ASCII character 33
display dialog s as text

출력은 다음과 같습니다 여기에 이미지 설명을 입력하십시오


10
믿을 수 없는! ( "문자"라는 단어를 완전히 써야한다는 의미입니다!) 이제 애플이 비싸다는 의미를 이해합니다. 농담, +1 다른 무언가 :-)
Level River St

10
AppleScript는 엄청나게 장황하지만 그 결과 실제로 평신도에게 가장 이해하기 쉬운 프로그래밍 언어 중 하나입니다.
Jonathan Van Matre

3
@JonathanVanMatre 쓰기 힘들고 읽기 쉬운
Digital Trauma

2
C조차도 더 읽기 쉽다 ...
Sarge Borsch

1
@Cruncher — 이것은 쉽다. 명령 이 (목록) 으로 set s to s as list변환 "H"됩니다 {"H"}. Java와 같은 다른 언어에서는 일반적으로 그렇게하는 것이 더 복잡합니다.
Nicolas Barbulesco 13:15에

24

세게 때리다

눈을 가늘게 뜨면 이런 종류의 작품이 있습니다.

echo NN i NN i i i iNN NNi i i i i i i NN i NN i i i i i i i NNi i i NN NN
echo NN i NNi i i i NN NN i i i i i i iNN i NN i i i i i i i NN i i iNN NN
echo NN i NN iNNNNi NN NN iNNNNi i i i NN i NN iNNNNi NN NN iNN iNNN NN NN
echo NNNNNNN NN iNN NN NN NN iNN i i i NN i NN NN iNN NNN iN NN NN iNNN N
echo NN i NN NNNNNN NN NN NNi NN i i i NN N NN NNi NN NN i i NN NNi iNN N
echo NN i NN NN i i NN NN NN iNN i i i NNN NNN NN iNN NN i i NN NN i NN
echo NN i NN iNNNi iNN NN iNNNNi N i i NN i NN iNNNNi NN i i NN iNNNN N NN
echo i i i i i i i i i i i i i i N

1
이것은 Windows 박쥐 / cmd 파일에서도 작동합니다
phuclv

banner Hello World또는figlet Hello World

2
@professorfish이 도전의 까다로운 부분은 ,과를 얻는 것 !입니다. 그렇지 않으면 평범한 old을 사용 echo합니다.
Digital Trauma

@DigitalTrauma 아, 죄송합니다, 그것을 보지 못했습니다 ... 조금 느리게

19

base64

SGVsbG8sIFdvcmxkIQ

원래 규칙을 충족합니다.


2
base64는 언어입니까? 그리고 당신의 출력은 무엇입니까? 대소 문자가 올바른가요?
Level River St

23
물론 언어입니다. Turing-complete가 아닙니다. 또한 base64decode.org
Kendall Frey

1
하하. 해당 답변에 대해서는 댓글을 +1하지만 답변은 아닙니다. 나중에 느낌이 든다면 나중에 대답하십시오.
Level River St

2
"
@Neil

2
@KendallFrey이 논리에 따르면 base10은 언어 : 1234567890입니다.
Cole Johnson

19

파이썬

그렇다면 우리는 모두가 가로로 읽는다고 가정합니까? 세로로 읽는 사용자의 경우 :

print chr(72) 
print chr(101)
print chr(108)
print chr(108)
print chr(111)
print chr(44)
print chr(32)
print chr(87)
print chr(111)
print chr(114)
print chr(108)
print chr(100)
print chr(33)

+1 그리고 하하하! 사람들은 그것이 불가능하다고 믿었 기 때문에이 질문은 처음에 너무 많은 다운 보트를 가지고있었습니다. 나는 파이썬을 모른다. 그러나 모든 신음 소리가 주어 졌을 때 나는 그것이 일반적인 언어로는 쉽지 않다는 것을 믿을 수 없었다.
Level River St

1
이 답변이 게시되기 전에 정확히 동일한 코드를 작성했습니다. 나는 답변을 게시하기 위해 새로 고침을 발견했습니다 ...
grovesNL

1
@steveverrill 신음 소리가 아무 이유없이 없었습니다. 여기에 원래 규칙 을 통과 한 단일 답변이 없습니다 (중괄호 / 패런 / 괄호 없음, 한 번 이상 반복되는 문자 없음)
Geobits

1
당신이 더 나은 느낌 경우 @grovesNL이 내가 한 첫 번째 일이 그 어느 파이썬을 사용했다. 게시하기 전에 한 줄로 연결할 수있는 방법이 있는지 알아 내려고 문서를 살펴보면서 잠시 시간을 보냈습니다.
Geobits

@Geobits sys.stdout.write는 파이썬의 대부분의 버전에서 줄 바꿈없이 텍스트를 출력하는 표준 방법입니다 (동작은 3.0에서 약간 변경됨). 우리는 시대 때문에 그것을 할 수 없습니다.
grovesNL

19

폴리 글롯 : HQ9 +, H9 +, HQ9 ++, CHIQRSX9 +, HQ9 + B 및 HQ9 + 2D (1 바이트)

H

언어 목록은 @victor에게 감사합니다.


5
이것은 폴리 글롯입니다. H9 +, HQ9 ++, CHIQRSX9 +, HQ9 + B 및 HQ9 + 2D에서도 작동합니다.
Victor Stafusa

Hello에서도 작동한다고 확신합니다.
wec

5
그것은 당신이 발명 한 모든 언어로 작동합니다.
Zero Fiber

2
나는 ... 아무것도 발명하지 않았다
이스마엘 미구엘

6
불행히도 결과는 "hello, world"( esolangs.org/wiki/HQ9%2B ) 이거나이 해석기 "Hello world"에 따르면 ( almnet.de/esolang/hq9plus.php ) "Hello, world!"를 얻으려면 어큐뮬레이터를 몇 번 증가시켜야 할 수도 있습니다.
tttppp

17

세상에

나는 난해한 언어를 좋아합니다. 다행히 OMGROFL은 영숫자입니다.

lol iz 72
rofl lol
lol iz 101
rofl lol
lol iz 108
rofl lol
rofl lol
lool iz 111
rofl lool
loool iz 44
rofl loool
loool iz 32
rofl loool
loool iz 87
rofl loool
rofl lool
lool iz 114
rofl lool
rofl lol
lol iz 100
rofl lol
lol iz 33
rofl lol
stfu

iz명령은 값을 변수 (이 경우 lol) lool로 설정합니다.loool 변수 역할 ...

그만큼 rofl 명령은 변수에 저장된 숫자에 해당하는 ASCII를 표시합니다.

stfu명령이 프로그램 종료)


하하, 좋아! 나는 LOLCODE 버전을 시도하고 싶지만 언어는 콜론과 따옴표를 사용하여 정수를 문자로 강제 변환해야합니다.
Jonathan Van Matre

17

코볼

   ID DIVISION 
   DATA DIVISION 
   01  HELLOWORLDBINARY 
       05  HE                       COMP    PIC 9999 
       05  LL                       COMP    PIC 9999 
       05  OCOMMA                   COMP    PIC 9999 
       05  SPACEW                   COMP    PIC 9999 
       05  ORTEXT                   COMP    PIC 9999 
       05  LD                       COMP    PIC 9999 
       05  EXCLAMATION              COMP    PIC 9999 
   01  FILLER REDEFINES HELLOWORLDBINARY 
       05  HELLOWORLDTEXT                   PIC XXXXXXXXXXXXX
       05  FILLER                           PIC X 
   PROCEDURE DIVISION 
       MOVE 51333                   TO HE 
       MOVE 37779                   TO LL 
       MOVE 38507                   TO OCOMMA 
       MOVE 16614                   TO SPACEW 
       MOVE 38553                   TO ORTEXT 
       MOVE 37764                   TO LD 
       MOVE 23104                   TO EXCLAMATION 
       DISPLAY HELLOWORLDTEXT 
       GOBACK 

실제로 영숫자 소스가 되려면 일부 변경이 필요했습니다.

PROGRAM-ID를 삭제할 수 있습니다. 생성 된 프로그램 이름을 얻습니다 (메시지 참조).

작업 저장을 제거 할 수 있습니다. 다시 컴파일러가 신음합니다.

두 줄 모두 이전에 완전 정지 / 마침표가 누락되어 설명이 완전히 누락되어 더 이상 관련이 없기 때문에 오류 메시지 수는 이전과 동일하며 프로그램의 생성 된 코드에 영향을 미치지 않습니다.

COMP-5는 COMP로 변경할 때 COMP 9999는 십진수 네 자리에 불과하지만 COMP-5는 모든 비트 값을 사용할 수있는 2 바이트 바이너리이므로 VALUE 절은 더 이상 허용되지 않습니다.

MOVE의 값은 문자 쌍을 제공하는 2 진 값을 제공하는 10 진수 값입니다.

COMP 필드에 네 자리 숫자가 있고 네 자리 이상의 VALUE 절을 허용하지 않더라도 해당 시점에서 잘리지 않고 리터럴 값의 MOVE에서 더 많은 숫자를 사용할 수 있습니다. 그 이유를 묻지 마십시오. 컴파일러 옵션 DIAGTRUNC (사용 안함)는 이에 대한 경고 진단을 생성합니다.

컴파일러 옵션 TRUNC (BIN)을 사용하여 COMP를 COMP-5로 처리 할 수 ​​있지만 MOVE를 사용하는 또 다른 방법입니다.

COBOL이므로 출력은 대문자로되어 있어야합니다 (거짓말이지만 재미를 위해).

HELLO WORLD!

OK, reented, 이제 다음을 생성합니다 :

Hello, World!

홀수 개의 문자 인이 컴파일러에는 홀수 바이트 바이트 이진 필드를 가질 수 없으므로 추가 변경이 필요했습니다. 13 X의 라인을보십시오! 일반적으로 X (13)으로 작성되지만 내가 보여준 것처럼 될 수 있습니다 ...

OR은 컴파일러에 예약 된 단어이기 때문에 이름으로 ORTEXT가 필요합니다 (또는 OR이 아님). 물론 OR도 의미합니다.

이는 EBCDIC 인식 및 Big Endian 상자에서 실행되므로 ASCII가 아닌 EBCDIC 값입니다.

아, 코볼에는 많은 정차 / 정지 기간이 필요합니다. 나는 그것들을 버렸고 (금지되었다) 많은 컴파일 메시지를 받았다. 어쨌든 컴파일러에게 코드를 생성하도록 지시했습니다 (메시지 중 어느 것도 객체 코드와 관련이 없습니다).

DIAGTRUNC가 없어도 메시지는 이제 최대 17 개입니다.

  1  IGYDS1003-E   A "PROGRAM-ID" paragraph was not found. 
  Program-name "CBLNAM01" was assumed. 

  2  IGYDS1082-E   A period was required.  A period was assumed 
  before "DATA". 

  3  IGYDS1082-E   A period was required.  A period was assumed 
  before "01". 

                   Same message on line:     11 

  3  IGYDS1040-E   A data item was found in the "DATA DIVISION" 
                   before a section header was encountered. 
                   "WORKING-STORAGE SECTION" was assumed. 

  4  IGYDS1082-E   A period was required.  A period was assumed 
  before "05". 

                   Same message on line:      5      6      7      8
                   9     10     12     13 

 14  IGYDS1082-E   A period was required.  A period was assumed 
 before "PROCEDURE". 

 15  IGYPS2145-E   A period was required.  A period was assumed 
 before "MOVE". 

 23  IGYSC1082-E   A period was required.  A period was assumed 
 before "END OF PROGRAM". 

1
나는 -허용 되지 않습니다
mniip

1
좋은 지적. 고정. 버릇.
Bill Woodger

@mniip Mmmm .... 조금 더 까다 롭습니다 ... 나중에 WORKING-STORAGE를 수정해야합니다. 나는 지금 떠나야한다.
Bill Woodger

1
"COBOL이므로 출력은 대문자로되어 있어야합니다." 잘 했어!
Jonathan Van Matre

15

루비 (정수와 공백 만 사용)

putc 72
putc 101
putc 108
putc 108
putc 111
putc 44
putc 32
putc 87
putc 111
putc 114
putc 108
putc 100
putc 33

산출: Hello, World!


15

자바 스크립트

with (function SGVsbG8sIFdvcmxkIQ(){}) atob(name)

브라우저 콘솔을 사용하여 테스트하십시오.


14

자바 스크립트

with (String) with ([]) {
    push(fromCharCode(72))
    push(fromCharCode(101))
    push(fromCharCode(108))
    push(fromCharCode(108))
    push(fromCharCode(111))
    push(fromCharCode(44))
    push(fromCharCode(32))
    push(fromCharCode(87))
    push(fromCharCode(111))
    push(fromCharCode(114))
    push(fromCharCode(108))
    push(fromCharCode(100))
    push(fromCharCode(33))
    alert(join([]))
}

1
아! 나는 같은 해결책을 강타했지만 오전 2시 이후부터 아침에 잠자리에 들고 게시하기로 결정했습니다. 당신에게 Kudos!
DocMax

12

페르난도

h E R
e I S
h E
l L O
w O
r L
d U S
i N G
o N L
y L E
t T E
r S

H e L L o W O R
L d h E L l O w
O r l D h e L L
O w o R l d H E
L l o W o r l d
H E l L o w O R
L D h E L L O W
O r L d H e l l
O w o R l d h e
L l o w O R l D
H e l L o w O R
L d h E L l O W
O R l D H E L l
O w O
r L d

쉼표와!
VoronoiPotato

@VoronoiPotato : 여기에서 잘 작동
marinus

죄송합니다 : X
VoronoiPotato

12

레볼

영숫자 전용 솔루션 :

prin quote Hello prin add space 12 prin space prin quote World print add space 1

위는 박사 Rebmu 우수한 제안을 사용하는 업데이트입니다 add space 1(생성하는 !모든 문자에 도착).

아래는 원본 버전입니다.

prin quote Hello prin pick mold system 264 prin space prin quote World print pick mold system 12

대괄호가있는 짧은 버전 :

print rejoin [quote Hello pick mold system 264 space quote World pick mold system 12] 

중괄호가있는 더 짧은 버전 :

print join {Hello} join pick mold system 264 join { World} pick mold system 12

대괄호와 중괄호가있는 가장 짧은 버전 :

print rejoin [{Hello} pick mold system 264 { World} pick mold system 12]

Rebol은 {}여러 줄 인용에 중괄호 를 사용합니다 . 위의 첫 두 답변과 같이 규칙 변경에 따라 완전히 유효하지만 완전 정신 (IMHO)에는 없습니다.


NB. 인쇄는 !고통이었다!

Rebol은 함수 이름 및 데이터 유형에 구두점 문자를 일상적으로 허용하고 사용합니다. 따라서 규칙에 따라 옵션 이 허용 to-char 33되거나 to char! 33허용되지 않습니다 (이 문장 부호는 연산자가 아닙니다).

다행히도 Rebol 시스템 객체 make object! [...]를 문자열과 체리로 바꾸어 건방진 방법을 찾았습니다.! 습니다. :)

업데이트 : 이제 체리는 시스템 객체의 라이센스 텍스트에서 쉼표를 선택했습니다.


1
!허용되지 않음
grovesNL

2
@grovesNL - 솔루션 더 이상 사용 -또는 !당신 때문에 이제 아래로 투표를 제거 할 수 있습니다
draegtun

1
쉼표가 없습니다
mniip

1
@ mniip-고마워요! 이제 수정되었습니다.
draegtun

1
꽤 까다 롭지 만 문자를 얻기 위해 공간에 추가했을 수도 있습니다 ... ;-) 46 문자로 표시되는 Rebmu 솔루션을 참조하십시오 ...
Dr. Rebmu

12

영숫자 문자, 공백 및 중괄호 {}, 대괄호 [] 및 괄호 () 만 사용합니다.

main()
{
        if(printf((long long []){0x202c6f6c6c6548}))
                if(printf((long long []){0x21646c726f57})){}
}

printf ()는 char *를 인자로 받아들이지 만 인용 부호 ( ")를 사용할 수 없기 때문에 문자열을 긴 배열로 타입 캐스트합니다. 여기 보이는 값은 ASCII 문자열이며 작은 엔디안 (0x48 = H, 0x65)입니다. = e, 0x6c = l 등) 8 바이트 인수를 전달할 수 있으므로 long long []으로 타입 캐스팅하여 4 대신 printf ()를 두 번만 사용하십시오.


이것은 규칙 # 1을 위반합니다
Timtech

1
문자, 숫자, 공백 및 {} () []가 허용됩니다.
pank4j

int 리터럴을 배열에 캐스트 할 수 있습니까? 나는 이것을 전에 본 적이 없다
phuclv

이것은 무엇을 하는가?
Nicolas Barbulesco

@ LưuVĩnhPhúc Array는 포인터입니다. 포인터는 정수입니다.
seequ

11

BBC 기본

bbcbasic.co.uk의 에뮬레이터

내 로고 답변에서 분리되었습니다.

쉬운 방법

오른쪽의 숫자는 ASCII 코드입니다. 이것은 인쇄와 동일합니다. 쉼표가 허용 된 경우 한 줄에 쉼표를 사용할 수 있습니다 ( VDU 72,101,108,etc.)

   10 VDU 72
   20 VDU 101
   30 VDU 108
   40 VDU 108
   50 VDU 111
   55 VDU 44
   60 VDU 32
   70 VDU 87
   80 VDU 111
   90 VDU 114
  100 VDU 108
  110 VDU 100
  120 VDU 33

보다 창의적인 방법

    5 MODE 6
   10 READ B
   12 WHILE B
   15   PROC1(B)
   16   PRINT
   17   READ B
   18 ENDWHILE
   20 END

REM procedure prints first square on line, 
REM then calls itself recursively with A DIV 2 to print the next
REM VDU 17 tell VDU controller we want to change colour
REM Next line changes background colour. 
REM Then following line VDU 32 prints a space in that background colour.

  110 DEFPROC1(A)
  115 VDU 17
  120 IF A AND 1 THEN VDU VPOS DIV 6 EOR 133 ELSE VDU 128
  125 VDU 32
  130 IF A THEN PROC1(A DIV2)
  140 ENDPROC

REM binary bitmap data for each row, least significant at left
  150 DATA 463221
  160 DATA 332053
  170 DATA 332151
  180 DATA 332053
  190 DATA 2586485
  200 DATA 1048576
  210 DATA 4395895
  220 DATA 4527447
  230 DATA 4526935
  240 DATA 333143
  250 DATA 4420981
  260 DATA 0

여기에 이미지 설명을 입력하십시오



11

DC

DC는 그 일을위한 완벽한 도구입니다.

5735816763073854918203775149089P

DC P-command는 스택에서 하나의 숫자를 팝하여 원시 컴퓨터 표현을 STDIO로 출력합니다. 리틀 엔디안 아키텍처에서 5735816763073854918203775149089 = 0x48656C6C6F2C20576F726C6421와 같이 표시되는을 보고 0x21, 0x64, 0x6C... = 'H', 'e', 'l'...출력 Hello, World!합니다.


이것은 어떻게 작동합니까? 설명을 추가 하시겠습니까?
wec

1
전혀. 설명이 곧 추가 될 것입니다.
Fors

2
+1. 몇 문자를 저장하기 위해 16 진수로 할 수 있습니다 :16i48656C6C6F2C20576F726C6421P
Digital Trauma

9

자바 스크립트!

그리고 그들은 할 수 없다고 말했습니다 ... 할당 연산자도없고 연결도없고 따옴표도 없습니다! 아아!

두려워하지 말고 with...

function w(x){
    with(document){
        with(String){
            write(fromCharCode(x))
        }
    }
}
w(72)
w(101)
w(108)
w(108)
w(111)
w(44)
w(32)
w(87)
w(111)
w(114)
w(108)
w(100)
w(33)

Output (on browser screen): Hello, World!

그는 자바 스크립트가 아니라 "자바에서 할 수 있다면 보너스"라고 말했다.
Almo

@Almo Java로하는 것을 목표로하지 않았습니다. 저는이 사이트에서 가장 큰 강점 인 JavaScript에 중점을
두었습니다

그러나 당신은 "그리고 그들은 할 수 없다고 말했다. 많은 사람들이 여전히 Java를 Javascript와 혼동합니다.
Almo

@Almo, 나는 단지 일반적인 말을 사용하고 있습니다 ... 그리고 "Javascript"를 언급 할 때 JavaScript를 사용하려고합니다 ... 나를 믿으십시오, 나는 보너스를 계획하지 않았습니다 ...
WallyWest

9

자바 스크립트

업데이트 : 월드 기능을 도입하여 많은 캐릭터를 자르도록 관리했습니다.

console.log에 쓰는 또 다른 자바 스크립트 솔루션 :

function World() { with (World) return name }
function Hello() {}
with (console)
with (String)
with (Hello)
with (name)
with (concat(fromCharCode(44)))
with (concat(fromCharCode(32)))
with (concat(World()))
log(concat(fromCharCode(33)))

이 항목에서 영감을 얻었습니다 .

먼저 Hello와 World라는 함수를 정의합니다. 이것은 나중에 사용됩니다.

그런 다음 중첩 된 체인을 시작합니다. with (console)하고 with (String)그래서 나중에 호출에서와 수 사용 console.logString.fromCharCode도트를 사용하지 않고.

계획은 이제 Hello, World!중첩 withs를 악용 하여 문자열 을 작성하는 것입니다. concat ()을 호출 할 때마다 결과 문자열은 다음 with-block의 컨텍스트입니다. 함수 "Hello"name속성 에 액세스하여 빠르게 얻을 수있는 바로 가기를 사용 Hello합니다. 그런 다음을 사용하여 쉼표와 공백 문자를 연결합니다 String.fromCharCode.

다음 트릭은 "World"문자열 의 일부 를 얻는 것 입니다. HelloWorld.name을 호출 할 수 없으므로 get에 사용한 것과 동일한 방법을 사용할 수 없습니다. 대신 나는 그 논리를 World 메소드 안에 넣고 호출한다.

마지막으로 마지막 느낌표를 추가하고 그 결과를 console.log 인 로그 함수에 바로 보냅니다.


7

최신 Perl (5.10 이상)에서 :

print q{Hello} and print chr 44 and print q{ World} and say chr 33

오래된 Perl에서 :

print q{Hello} and print chr 44 and print q{ World} and print chr 33 and print chr 10


위의 두 솔루션 모두 Perl q따옴표와 같은 연산자를 사용하고 문자열을 인용하기위한 선택적 구분 기호를 허용합니다 (예 : q{} q[] q() q//

이 솔루션에는 괄호, 괄호 또는 괄호를 허용하는 규칙 변경이 필요합니다. 따라서 완전히 유효한 동안 나는 mniip탁월한 Perl 답변이 규칙의 진정한 정신 (+1)에 있다고 생각 합니다.

그러나 mniip대답 에서 잎을 가져 가면 내 솔루션을 다음과 같이 작성할 수 있습니다.

print q xHellox and print chr 44 and print q x Worldx and say chr 33

그리고 눈에 더 힘들지만 작동합니다.


1
쉼표가 없습니다
mniip

1
@mniip-다시 감사합니다. 누락 된 쉼표를 추가했습니다.
draegtun

자세한 내용이없는 AppleScript처럼 보입니다
Ming-Tang

내 Mac에서는 첫 번째와 세 번째 Perl 줄이 작동하지 않고 두 번째 Perl 줄만 작동합니다. Perl 5.16.2가 있습니다.
Nicolas Barbulesco

syntax error at -e line 1, near "say chr"
Nicolas Barbulesco

7

print chr hex for qw z48 65 6c 6c 6f 2c 20 57 6f 72 6c 64 21z

6

파이썬 :

import antigravity 

"Hello, world!" 화면에 나타납니다. 나를 믿지 않습니까? 직접 사용해보십시오! 또한 이것은 실제로 웹을 사용하지 않고 브라우저를 열어 웹 사이트를 조회 할 수 있습니다.


1
화면 높이가 768 픽셀이므로 "Hello, world!" 화면에이 나타나지 않습니다.
Olivier Grégoire

1
이것은 "Hello, world!"라고 쓰지 않습니다. 내 시야 어디에서나. 그러나 이것은 Safari에서 xkcd.com/353/ 을 엽니 다 !
Nicolas Barbulesco

나는 지금 웹을 사용하고 있지 않습니다. 웹 사이트에 연결할 수있는 브라우저로 작성 중입니다.
Nicolas Barbulesco

sciyoshi.com/2008/12/import-antigravity 이 코드에는 Python 3이 나타나야하지만 Python 3에서는 실행되지 않습니다 (백 포트되지 않은 경우).
March Ho

6

공백

자, 공백을 사용할 수 있습니다. 그것은 단지 사용 Space, Tab, LineFeed및 기타 문자를 무시합니다.

   	  	   
	
     		  	 	
	
     		 		  
	
     		 		  
	
     		 				
	
     	 		  
	
     	     
	
     			 			
	
     		 				
	
     			  	 
	
     		 		  
	
     		  	  
	
     	    	
	
  


: 코멘트와 함께 S, T또는 L수단 Space, Tab또는 LineFeed각각.

S S S T S S T   S S S L
T   L
S S S S S T T   S S T   S T L
T   L
S S S S S T T   S T T   S S L
T   L
S S S S S T T   S T T   S S L
T   L
S S S S S T T   S T T   T   T   L
T   L
S S S S S T S T T   S S L
T   L
S S S S S T S S S S S L
T   L
S S S S S T T   T   S T T   T   L
T   L
S S S S S T T   S T T   T   T   L
T   L
S S S S S T T   T   S S T   S L
T   L
S S S S S T T   S T T   S S L
T   L
S S S S S T T   S S T   S S L
T   L
S S S S S T S S S S T   L
T   L
S S L
L
L

강조 표시 : http://en.wikipedia.org/wiki/Whitespace_(programming_language)#Sample_code


5

dc (골퍼의 경우 26 바이트)

공백과 []괄호는 이제 허용됩니다 :

[Hello]n44P[ World]n33P[]p

산출:

$ dc <<< "[Hello]n44P[ World]n33P[]p"
Hello, World!
$ 

5

Rebmu , 46 자

pnUPPqHELLO01pnADsp12pnSPpnUPPqWORLD01pnADsp01

강력하게 평행 Rebol에서 @dragetun의 솔루션 (Rebmu는 코드 골프에서 흔들어 언어에주의를 끌기위한 "방언"인 Rebol / Red 교육 도구이기 때문에 :-P)

그러나 누락 된 문자를 얻으려면 더 분명한 일을했습니다. 시스템 문자열을 살펴 보는 대신 공간에 추가했습니다. 당신은 얻을 수 있습니다문자 리터럴 # "을 얻기 위해 공백 1추가 있습니다 !" 및 추가 공간 (12)은 ","문자 문자 #을 얻을 수 있습니다.

우리가 이것을 실행하면 "숨겨지지 않은"것을 볼 수 있습니다 :

>> rebmu/debug/stats "pnUPPqHELLO01pnADsp12pnSPpnUPPqWORLD01prADsp01"
Original Rebmu string was: 46 characters.
Rebmu as mushed Rebol block molds to: 46 characters.
Unmushed Rebmu molds to: 62 characters.
Executing: [pn upp q hello 1 pn ad sp 12 pn sp pn upp q world 1 pr ad sp 1]
Hello, World!

어느 것이 상당히 논리적입니다.

; print with no newline the result of doing an uppercase/part
; on the quoting of the symbolic word hello, of only the first
; N characters (where N is 1)
pn upp q hello 1

; print the character you get when you add 12 to the space
; character literal, a.k.a. comma...again no newline
pn ad sp 12

; print a space, no newline
pn sp

; do the same trick of printing the quoted word hello with the
; first letter converted to uppercase
pn upp q world 1

; print the character you get when you add 1 to the space
; character literal, a.k.a. exclamation point...with newline now
pr ad sp 1

4

T-SQL, 52

아,이게 낫다! 직접 이진 변환, 52 자만 가능합니다.

SELECT CAST(0x48656C6C6F2C20576F726C6421 AS VARCHAR)

이전에는 ...

훨씬 영리하고 일하는 것이 이것에 golfier 해결 방법이 있습니다 경우에 우리가 사용할 수있는이 =+ (찾고 표준 MSDB의 데이터를 내장하고 EXEC-수 쿼리 문자열을 구성하는 사용)

그러나 우리는 할 수 없으므로이 순진한 접근 방식을 얻습니다.

SELECT CHAR(72)SELECT CHAR(101)SELECT CHAR(108)SELECT CHAR(108)SELECT CHAR(111)SELECT CHAR(44)SELECT CHAR(32)SELECT CHAR(87)SELECT CHAR(111)SELECT CHAR(114)SELECT CHAR(108)SELECT CHAR(100)SELECT CHAR(33)

1
나는 연결 연산자의 부족이 나를 죽이고 있다는 것을 알고있다. 나는 JavaScript로 그것을 할 수있는 방법을 생각하고있다.
WallyWest

1
네,이 도전은 대부분 순진한 답변을 만들어내는 것처럼 보이지만 흥미로운 비 연속적 접근 방식을 찾으려고 시도하는 흥미로운 두뇌 왜곡에 확실히 영감을주었습니다.
Jonathan Van Matre

넌 더 잘할 수있어. SELECT 대신 PRINT를 사용하십시오. 그리고 암시 적으로 LTRIM () 또는 RTRIM ()으로 캐스트합니다. 나는 여기서 비슷한 것을한다 .
Muqo

4

파이썬 :

Pfff, 영숫자의 숫자 부분이 필요한 사람은 누구입니까?

from string import lowercase
from string import uppercase
from string import punctuation
print uppercase[len(str([[[len(str())]]]))]
print lowercase[len(str([[]]))]
print lowercase[len(str([[[[[len(str())]]]]]))]
print lowercase[len(str([[[[[len(str())]]]]]))]
print lowercase[len(str([[[[[[[]]]]]]]))]
print punctuation[len(str([[[[[len(str())]]]]]))]
print
print uppercase[len(str([[[[[[[[[[[]]]]]]]]]]]))]
print lowercase[len(str([[[[[[[]]]]]]]))]
print lowercase[len(str([[[[[[[[len(str())]]]]]]]]))]
print lowercase[len(str([[[[[len(str())]]]]]))]
print lowercase[len(str([len(str())]))]
print punctuation[len(str())]

이것은 지역에 따라 다르므로 마일리지가 다를 수 있습니다. 그러나이 결과를 실제로 복제하려면 import 문 대신 다음을 사용할 수 있습니다.

lowercase="abcdefghijklmnopqrstuvwxyz"
uppercase="ABCDEFGHIJKLMNOPQRSTUVWXYZ"
punctuation="!\"#$%&'()*+,-./:;<=>?@[\]^_`{|}~"

(이것은 내 제출의 일부가 아니며 재현성을 위해 지역 주민을 공유하는 것입니다)


4

J-73 자

결국 할 수 있습니다!

72 101 108 108 111 44 32 87 111 114 108 100 33{do 1 8{show 0 def 0
take
)

J에 관한 사항은 다음과 같습니다. 대부분의 프리미티브 는 ASCII 문장 부호와 최대 2 개의 점 또는 콜론입니다. 구두점으로 만들어지지 않은 프리미티브는 영숫자 문자 다음에 2 개의 점 또는 콜론으로 구성됩니다. 따라서를 제외하고는 아무도 허용되지 않습니다 { } [ ]. [] 신원 동사이며, 따라서 쓸모가 없습니다.

운 좋게도 {배열을 색인화하므로 모든 ASCII 문자 ( a., Alphabet )가 있는 문자열이 있으면 ASCII 코드 포인트로 문자를 가져올 수 있습니다. 우리는 또한이 문자열을 만드는 백업 방법 , 0 : 0다음 물건 후 고독한을 ); 표준 라이브러리에 별명이있는 콜론def .

그런 다음 표준 라이브러리 show에 동사가 있습니다. 동사는 이름을 문자열로 전달하면 동사의 내부 표현을 제공합니다. do문자열을 평가하는 또 다른 동사가 있습니다 . 우리가 a.그러한 표현에서 뽑아 낼 수 있다면 , 우리는 그것을 평가하고 끌어낼 수 있습니다Hello, World! 있습니다.

우리의 구원자의 형태로 제공 take의 별칭, {.그는이 a이름에 있습니다. show'take'반환 take=: {.우리가 그래서, a.따라서 솔루션을.

우리는 표준 라이브러리 {와 본질적으로 동등한 것을 사용하여 제거 할 수 pick있지만, 마지막에있는 파는 피할 수 없습니다.

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