英数字のHello World [終了]


43

あなたの目標は、「Hello、World!」と書くことです。(引用符を除く)。これはですので、多くの賛成票が勝ちます。コードの長さは、タイを壊すために使用されます。
次の規則の範囲内であれば、何でも可能です。

  • すべての文字は文字または数字である必要があるため、文字列「abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789」でのみ文字を使用できます。
  • 使用するすべてのコードは、インポートされたモジュール/クラス/お気に入りの言語で呼び出されるものを除き、1つのファイル内にある必要があります。
  • 選択した言語の標準ライブラリ/フレームワークのみが許可されます(たとえば、PythonのMathモジュールは許可されますが、Numpy、Scipy、およびPygameは許可されません)。TkInterはPythonのGUIの事実上の標準であるため、許可します。
  • stdinからの読み取り、ファイルの読み取り、画像の表示、Webからの読み取りなど、入力は許可されません。

ルールを曲げずにJavaでそれを行う方法を見つけた場合、+ 10ブラウニーポイント。


あなたのマークに、コードを設定してください!

編集:中括弧({})、大括弧([])、および括弧(())は許可されます。これらがないと、ほとんどの言語ではほとんど不可能です。文字制限ルールも削除します。うまくいけば、これがもっと面白くなります。

EDIT ^ 2:空白も許可されます。脳が正常に機能していません、ごめんなさい。>。<


1
あなた次第、私はただ確かめているだけです。空白はどうですか?
Geobits

1
ああ、右の空白。今日、私の脳は明らかに正しく機能していません。それは許されるべきです。一秒、ルールを修正させてください。
wec

8
だから、演算子はありませんか?そして、最も重要なことは、いいえ;?Cで何かを書くにはどうすればよいですか?
オベロン


3
Jを自然な方法で除外する方法を考え出すための+1:動作72 101 108 108 111 44 32 87 111 114 108 100 33{a.するために最後のピリオドu:が必要であり、同様に通過するパスにはコロンが必要です。なしで.:私たちは何もありません。
algorithmshark 14年

回答:


103

Perl

perlはasciiノイズと次のようなランダムなシンボルに満ちた言語であると言う人も$います。

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ですか?

Perlでのグループがあり、「引用符のような演算子」が含ま q(str)qw(li st)/regex/s/from/to/とりわけ。これらの演算子はすべて、デリミタとしてほぼすべての文字を使用できますが、いくつかの特徴があります:開き括弧は、対応する閉じ括弧で閉じなければならず、区切り文字として文字使用する場合はスペースを入れる必要があります演算子文字の後(裸語と区別するため)。

この場合、s///(正規表現置換)演算子の3つの使用法があります。

s//Helloq worldm/
s/q/chr 44/e
s/m/chr 33/e
すべて文字で区切られますz/e最後の2つのフラグにより​​、置換はリテラルテキストではなく評価されるコードとして解釈されます。

perlについてよく知られている事実は、$_特に指定しない限り、ほとんどの操作がデフォルトで組み込み変数を操作することです。この場合、これら3つの置換とprint操作はすべてこの$_ため、最初にHello worldという単語を変数に挿入し、次に文字の数値のASCII値を使用して句読点を修正し、変数の内容を出力します。


46
+1ここで何が起こっているのかわかりませんが、うまくいきます!
squeamish ossifrage 14年

95
perlのモットー可能性があり@squeamishossifrage
mniip

6
可能であれば、簡単な説明を追加しますか?
ace_HongKongIndependence 14年

10
私は決して専門家ではありませんが、perlでは通常、置換はで示されs/PATTERN/REPLACEMENT/FLAGSますが、実際にはスラッシュの代わりに必要なものをほとんど使用できます。ここのコードは、スラッシュの代わりに「z」を使用し、(Helloq Worldm)に(何も)変換せず、chr 44の「q」を置き換えます(\ eフラグを使用してREPLACEMENTまたは別名「chr 44」を式として)、 「。次に、「m」を「!」というchr 33に置き換えて出力します。
アモリー14年

3
引用符のような演算子の@ace。たとえばq//、任意の区切り文字を使用できますq!! q** q\\ q;;。いくつかの例外は閉鎖することにしている(あなたが使用)q() q[] q{} q<>およびそれを区切り文字として英数字を使用するために、それは例えば、不許可曖昧にオペレータから離間されなければなりませんq qqq 66。同じトリックが他の引用のような演算子にも適用されます。
mniip 14年

73

C

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 14年

2
@aceケースが定義されている場合のみ。あなたは簡単にこれを書き換えることができるswitch(putchar(72)){}switch(putchar(101)){}など、
コミンテルン

27
+1putchar(putchar(108))
イルマリカロネン14年

2
コンマの「if(putchar(44))」が欠落しています。
Desty

1
よくわかりましたが、質問のコンマをどのように逃したかわかりません。一定。
mattnewport 14年

49

編集

ロゴ

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
この答えを2つに分割する必要があります。
ジャスティン14年

@WallyWest私は言語をほとんど知りませんが、それは仕事のためのツールでした。テキストも印刷できます(図面上ではラベルと呼ばれます)が、そのための引用符が必要です(開始引用符のみが必要で、終了引用符はオプションだと思います)
Level River St 14年

1
単語を印刷する代わりに、描画するために+1
wec 14年

@steveverril 2番目の引用は、実際には構文エラーになります。
14年

29

Applescript

この[]中には括弧、括弧{}、括弧()はまったくありません:

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 14年

10
AppleScriptはとてつもなく冗長ですが、その結果、素人にとって最も理解しやすいプログラミング言語の1つになりました。
ジョナサンヴァンマトレ14年

3
@JonathanVanMatre書きにくい、読みやすい
デジタル外傷14年

2
でもCは...読みやすい
Sargeのボルシチ

1
@Cruncher —これは簡単です。コマンドは(リスト)にset s to s as list変換"H"され{"H"}ます。Javaのような他の言語では、それを行うのが通常より複雑です。
ニコラスバルブレスコ

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
あまりにも窓バット/ CMDファイルでこの作品
phuclv

banner Hello Worldまたはfiglet Hello World

2
@professorfishこの課題の難しい部分は、,とを取得すること!です。それ以外の場合は、単純にoldを使用しますecho
デジタル外傷14年

ああ@DigitalTrauma、申し訳ありませんが、それを見ていない...少し遅い

19

base64

SGVsbG8sIFdvcmxkIQ

元のルールを満たします。


2
base64は言語ですか?そして、あなたの出力は何ですか?大文字は正しいですか?
レベルリバーセント

23
確かに言語であり、チューリング完全ではありません。また、base64decode.org
ケンドールフレイ

1
ハハ。その応答については、コメントではなく+1を付けてください。もしそうなら、後であなたの答えかもしれません。
レベルリバーセント14年

2
使用した"
@Neil

2
1234567890:そのロジックによって@KendallFreyは、base10は言語である
コール・ジョンソン

19

Python

それでは、誰もが水平に読むと仮定しますか?縦に読みたいユーザー向け:

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とははは!人々はそれが不可能であると信じていたため、この質問には最初に非常に多くのダウン票がありました。私はPythonを知りませんが、うめき声​​をあげると、そのような一般的な言語では簡単なことだとは信じられませんでした。
レベルリバーセント14年

1
この回答が投稿される前に、まったく同じコードを書きました。私は...私の答えを投稿するにリフレッシュし、これを見つけた
grovesNL

1
@steveverrillうめき声には理由がありませんでした。合格しているだろう、ここで一つの答えはありませんオリジナルのルールを(なし、中括弧/括弧/括弧は、何の文字が複数回繰り返されていない)
Geobits

1
@grovesNLそれはあなたがより良い感じさせる場合は、これは私がした最初のものです今までのためのpythonを使用していました。投稿する前にドキュメントを1行に連結する実行可能な方法があるかどうかを把握しようとして、しばらくドキュメントを調べました。
ジオビット14年

@Geobits sys.stdout.writeは、Pythonのほとんどのバージョンで改行なしでテキストを出力する標準的な方法です(3.0では動作がわずかに変更されています)。期間のためにここではできません。
grovesNL

19

ポリグロット:HQ9 +、H9 +、HQ9 ++、CHIQRSX9 +、HQ9 + BおよびHQ9 + 2D(1バイト)

H

@victorに言語のリストをありがとう。


5
これはポリグロットです。H9 +、HQ9 ++、CHIQRSX9 +、HQ9 + BおよびHQ9 + 2Dでも機能します。
ビクターStafusa 14年

Helloでも機能すると確信しています。
wec 14年

5
それはあなたが発明したあらゆる言語で動作します。
ゼロファイバー14年

2
私は...何かを発明していなかった
イスマエルミゲルを

6
残念ながら、出力は「hello、world」(esolangs.org/wiki/HQ9%2B)、またはこのインタープリターによると「Hello world」です。(almnet.de/esolang/hq9plus.php)「Hello、world!」を取得するには アキュムレータを数回増やす必要がある場合があります。
tttppp 14年

17

OMGROFL

私は難解な言語の大ファンです。幸いなことに、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コマンドは、この場合には、変数に値を設定しlolloolそしてloool変数として機能します...

このroflコマンドは、変数に保存されている数値に相当するASCIIをエコー出力します。

stfuコマンドは、プログラムを終了します。)


ハハ、いいね!LOLCODEバージョンを試してみたかったのですが、言語ではintをcharに強制するためにコロンと引用符を使用する必要があります。
ジョナサンヴァンマトレ14年

17

COBOL

   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は削除できます。生成されたプログラム名を取得します(メッセージを参照)。

WORKING-STORAGEは削除できます。再びコンパイラがうめき声を上げます。

これらの行の両方には、以前は完全なストップ/ピリオドがありませんでしたが、これは説明が完全になくなったため、もはや関連しなくなったため、エラーメッセージの数は以前と同じであり、プログラムの生成されたコードには影響しません。

COMP-5をCOMPに変更すると、VALUE句は許可されなくなります。COMP9999は4桁の10進数のみであるのに対し、COMP-5はすべてのビット値を使用できる2バイトのバイナリです。

MOVEの値は、文字のペアを提供するバイナリ値を提供する10進値です。

COMPフィールドには4桁があり、4桁を超えるVALUE句を許可していませんが、その時点で切り捨てをせずにリテラル値のMOVEでより多くの桁を使用できます。理由を聞かないでください。コンパイラオプションDIAGTRUNC(これはオフになっています)は、これらの警告診断を生成します。

コンパイラー・オプションTRUNC(BIN)を使用してCOMPをCOMP-5として扱うこともできますが、MOVEは別の方法です。

COBOLであるため、出力は大文字である必要があります(嘘ですが、楽しみのためだけです)。

HELLO WORLD!

OK、寛容、今すぐ生成:

Hello, World!

このコンパイラでは奇数バイトのバイナリフィールドを使用できないため、奇数文字であるため、さらに変更が必要です。13 Xのその行を見てください!通常はX(13)として記述されますが、私が示したとおりにすることができます...

ORはコンパイラの予約語であるため(もちろんORを意味します)、名前としてORTEXTが必要です(とにかくORではありません)。

これらはEBCDIC対応のビッグエンディアンボックスで実行されているため、ASCIIではなくEBCDIC値です。

ああ、COBOLには多くのフルストップ/ピリオドが必要です。私はそれらを禁止しました(禁止されています)ので、多くのコンパイルメッセージがありました。とにかくコードを生成するようコンパイラーに指示しました(オブジェクトコードに関連するメッセージはありません)。

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
いい視点ね。修正。習慣。
ビル・ウッドジャー14年

@mniip Mmmm ....もう少し注意が必要です... WORKING-STORAGEは後で修正する必要があります。私は...今残している
ビル・Woodger

1
「COBOLなので、出力は大文字でなければなりません」と笑いました。よくやった!
ジョナサンヴァンマトレ

15

Ruby(アルナムと空白のみを使用)

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

Javascript

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

ブラウザのコンソールを使用してテストします。


14

JavaScript

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時だったので、朝寝て寝る必要があると決めました。おめでとうございます!
DocMax 14年

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

不足しているコンマと!
ボロノイポテト14年

@VoronoiPotato:ここで問題なく動作します
マリヌス14年

申し訳ありませんが:X
ボロノイポテト14年

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は{}、複数行の引用に中括弧を使用します。上記の最初の2つの答えのように、ルールの変更は完全に有効ですが、完全な精神(IMHO)ではありません。


NB。の印刷は!苦労しました!

Rebolでは、関数名とデータ型に句読点を日常的に使用できます。だから、のようなオプションto-char 33またはto char! 33(これらの句読点はSEパー事業者でなくても)規則の下で許可されません。

幸い私はREBOLのシステムオブジェクトを回して生意気な方法を見つけた:make object! [...]その文字列と桜のピックに!それから:)

更新:また、システムオブジェクトのライセンステキストからコンマを選択しました。


1
!許可されていません
grovesNL

2
@grovesNL -ソリューション使用しなくなった-!、あなたが今ダウンの投票を削除することができるように
draegtun

1
あなたはコンマ不足している
mniip

1
@mniip-ありがとうございます!修正されました。
draegtun 14年

1
かなりトリッキーな、しかし、あなただけの文字を取得するために... ;-)スペースに追加した可能性が Rebmuソリューションを参照してください ...、そのクロック46文字の中に
博士Rebmu

12

C

英数字、スペースおよび中括弧{}、大括弧[]および括弧()のみを使用します。

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

printf()は引数としてchar *を受け入れますが、quotes( ")を使用できないため、文字列をlong long配列として型キャストします。ここで見られる値は、ASCII文字列、リトルエンディアン(0x48 = H、0x65)です。 = e、0x6c = lなど)。long long []に型キャストすると、8バイトの引数を渡すことができるため、4つではなく2つのprintf()呼び出しのみを使用できます。


この休憩は#1ルール
Timtech

1
文字、数字、スペース、および{}()[]を使用できます。
pank4j 14年

あなたはintリテラルを配列にキャストできますか?私は前にこれを見たことがない
phuclv

これは何をしますか?
ニコラスバルブレスコ

@LưuVĩnhPhúc配列はポインターです。ポインターは整数です。
seequ 14年

11

BBC BASIC

bbcbasic.co.ukのエミュレーター

ロゴの回答から分割します。

簡単な方法

右側の数字は単なるASCIIコードです。これは印刷とまったく同じです。カンマが許可されていれば、1行で実行できます(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 = 0x48656C6C6F2C20576F726C64210x21, 0x64, 0x6C... = 'H', 'e', 'l'...リトルエンディアンアーキテクチャでとして表され、を出力しますHello, World!


これはどのように作動しますか?説明を追加してもいいですか?
wec 14年

1
どういたしまして。説明はすぐに追加されます。
フォルス

2
+1。あなたは、いくつかの文字を保存するための六角でそれを行うことができます:16i48656C6C6F2C20576F726C6421P
デジタルトラウマ

9

JavaScript!

そして、彼らはそれができないと言いました...代入演算子も、連結子も、引用符もありません!ああ!

恐れないで...力は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!

彼は、Javascriptではなく「Javaでできるならボーナス」と言った。
アルモ14年

@Almo私は...私はこのサイト上でここに私の主な強みではJavaScript、に焦点を当てた... Javaでそれを行うことを目指していませんでした
WallyWest

しかし、あなたは「そして、彼らはそれができなかったと言った」と言ったが、それは私がJavaでそれをするためのボーナスを示すパズルについて言及していると思った。多くの人々はまだJavaとJavascriptを混同しています。
アルモ14年

@Almo、私は一般的なことわざを使用していた...そして私は「JavaScriptの」を参照したときに、私はJavaScriptを使用する予定...信託私は、私が...ボーナスのために行くことを計画していなかった
WallyWest

9

Javascript

更新:ワールド機能も導入することで、キャラクターの束を削減できました。

console.logに書き込む別のJavaScriptソリューション:

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のチェーンを開始します。with (console)そしてwith (String)私は、後で呼び出し上でできるように使用されているconsole.logString.fromCharCode、ドットを使用しません。

計画では、Hello, World!ネストされたwithsを悪用して文字列を作成します。concat()を呼び出すたびに、結果の文字列は次のwith-blockのコンテキストになります。関数のプロパティに"Hello"アクセスしてすばやく取得するには、ショートカットを使用nameHelloます。次に、を使用してコンマとスペース文字を連結しますString.fromCharCode

次のトリックは"World"、文字列の一部を取得することです。HelloWorld.nameを呼び出すことができないため、getに使用したのと同じメソッドを使用することはできません。代わりに、そのロジックをWorldメソッド内に入れて呼び出します。

最後に、最後の感嘆符を追加し、結果をログ関数(もちろんconsole.log)に送信します。


7

Perl

最新の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 14年

冗長性のないAppleScriptのように見える
明唐

私のMacでは、最初と3番目のPerl行は機能せず、2番目のPerl行のみが機能します。Perl 5.16.2があります。
ニコラスバルブレスコ

syntax error at -e line 1, near "say chr"
ニコラスバルブレスコ


6

Python:

import antigravity 

「Hello、world!」画面に表示されます。信じられない?自分で試してみてください!また、これは実際にはWebを使用せず、ブラウザを開き、Webサイトを検索する場合があります。


1
私は768ピクセルの高さの画面を持っているので、「Hello、world!」画面に表示されません。
オリビエグレゴワール

1
これは「Hello、world!」とは書かない 私の視野のどこでも。しかし、これはSafariでxkcd.com/353/を開きます!
ニコラスバルブレスコ

現在、Webを使用していません。Webサイトに接続する可能性のあるブラウザーで作成しています。
ニコラスバルブレスコ

sciyoshi.com/2008/12/import-antigravityこのコードはPython 3を表示する必要がありますが、Python 3では実行されません(バックポートされていない限り)。
3月Ho

6

空白

さて、空白を使用できます。それだけで使用しSpaceTabLineFeedおよびその他の文字を無視します。

   	  	   
	
     		  	 	
	
     		 		  
	
     		 		  
	
     		 				
	
     	 		  
	
     	     
	
     			 			
	
     		 				
	
     			  	 
	
     		 		  
	
     		  	  
	
     	    	
	
  


:コメントでSTまたはL手段SpaceTabまたは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

レブム、46文字

pnUPPqHELLO01pnADsp12pnSPpnUPPqWORLD01pnADsp01

Rebolでの@dragetunのソリューションに 強く匹敵します(RebmuはRebol / Redの教育ツールであり、Code Golfでロッキングすることで言語に注意を引くことを目的とする「方言」です。:-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
ええ、この挑戦​​はほとんど素朴な答えを生み出しているように見えますが、興味深い非連結アプローチを見つけようとするいくつかの興味深い脳のねじれを確実に刺激しました。
ジョナサンヴァンマトレ14年

あなたはもっとうまくやることができます。SELECTではなくPRINTを使用します。そして、LTRIM()またはRTRIM()で暗黙的にキャストします。ここでようなことをします
ムコ14

4

Python:

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文字(Alphabeta.と呼ばれる)を持つ文字列があれば、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.