パリンドロームハロー、ワールド


29

あなたの仕事は、「Greetings、Planet!」を印刷するプログラムを作成することです。正確にコンソールに。簡単そうですね。さて、ここにトリックがあります。コードは回文でなければなりません。つまり、左から右と同じように右から左に読みます。標準の抜け穴は許可されていません


これは「ハローワールド」ではないようです。
エリックアウトゴルファー

4
@ΈρικΚωνσταντόπουλοςこれは、すべての意図と目的において、Hello Worldと同じです。目標は、2つの単語で構成される短い文字列を、Hello Worldプログラムでも一般的な句読点とともに印刷することです。Hello Worldを印刷するビルトインを除けば、実際の文字列が印刷されるかどうかに関係なく、ソリューションは(実際の文字列を除いて)まったく同じになります。(そして、「Greetings、Planet!」というフレーズは、ビルトインを役に立たないようにするために特別に選ばれたと思います。)
Martin Ender

1
@MartinBüttnerこれは、hello-worldプログラムで許可されている唯一の出力であるHello, world!と思います。Hello World!
エリックアウトゴルファー

回答:



16

TI-BASIC、67バイト

"!tenalP ,sgniteerG"
"Greetings, Planet!"

これは、プログラムの最後の行が画面に表示され、最初の文字列が基本的にコメントとして扱われるために機能します。

各小文字は2バイトとして保存され、残りの文字は1バイトです。ルールを曲げてすべて大文字で印刷すると、41バイトになります

"!TENALP ,SGNITEERG"
"GREETINGS, PLANET!"

バイト数をさらに減らすためにeand i(数字)を使用できますか?
アディソンクランプ

1
@VTCAKAVSMoACE私はそれを考えましたが、それらはイタリック体なので、少し異なって見えます。
-NinjaBearMonkey

明確にするために、最初の行はコメントではなく、回答変数に保存されます。
ジュリアンラクニエット16

12

私はこれが少し遅れていることを知っています(そして少し気難しい)が...

> <>(魚)、47 45 47バイト(ランダムな方向を使用していない場合は、実際には43 45)

x"!tenalP ,sgniteerG"!|o|!"Greetings, Planet!"x

これらの答えは他のすべてとは少し異なります。以下のためのチャンスがあり、コードのいずれかの方向に実行されるが。

したがって、「コンソールへの印刷」とは、標準出力への印刷を意味すると想定しました。これによりエラーがスローされます。文字列がstdoutに出力された後、エラーがstderrにスローされます。

これが両方の方法で機能することを証明するために、「ランダムな方向」ディレクター「x」を使用しました。Fishは2次元の言語です。そのため、監督がどの方向を指していても、コードは(最終的に)実行されます。

最初の監督が右を指していると仮定すると、キャラクターは「スタック」に逆順でロードされ、逆の逆(または通常のテキスト)が印刷されます。

両方の監督が左を指していると仮定すると、キャラクターは再び逆順に「スタック」にロードされます(コードはここで逆方向にロードするため、方向は左になります)、そして逆の逆(または通常のテキスト)が印刷されます。

ランダム化されたディレクターが上向きまたは下向きの場合、これは重要ではありません-魚は、コードの下側または上側にループして、ランダマイザーに戻ります。このようにして、実行するコードに向かって内側を指すまで、ランダマイザーでループし続けます。

!|o|!ビットは両側から、次のことを行います。

  • !次の命令をスキップします(常にスキップします|

  • |リフレクターです。それはに向かって内向きに戻りoます。

  • o スタックの現在のアイテムをキャラクターとしてコンソールに出力し、スタックから削除します。

それで、本質的に、これは「一緒に押された浴室の2つの鏡」トリックであり、私はもうできないまで出力します。

猫の絵文字を使用しています。>o<出力を無限にリダイレクトしますが、それでもエラーがスローされますが、リフレクションにスキップを使用しないで済ませることができます。

私は最初は正しかったことがわかりました。2回目の試みは回文ではありませんでしたが、それは反射的でした。

魚(stderrへの印刷なし)、64バイト(ew)

x"!tenalP ,sgniteerG"!;oooooooooooooooooo;!"Greetings, Planet!"x

この男はもう少し長いです。

同じランダム化された矢印関数(両方の方法で動作することを証明するため)があり、stderrには出力されません。

ここでの違いは明らかです。文字通り、スタック内のすべてのアイテムを出力し、実行をで終了し;ます。

!;以下のように、直ちに実行を終了しない!スキップ(この場合、エンドEXEC、)次の項目を、それがとして作用する他の側面を、当たるまで継続;!それが何をスキップする前に、それが実行を終了しており、。

短い回答と同じランダム化された方向パターンに従います。



@Aaron一般に、ここのFishは> <>を意味すると想定されていますが、以前にその問題に遭遇したことがあります-追加します。ありがとう!
アディソンクランプ

私が推測するように、完全なコードが実行されるかどうかは予測不可能です。プログラムカウンタが2つのランダムな方向の命令の間に詰まっている場合、またはランダムな方向の命令の1つに留まっている場合、たとえば、プログラムカウンタが下がり、底に達し、その命令に戻って最初からやり直しますか?

@GLASSICプログラムは1回だけ出力され、コード全体が実行されることはありません。
アディソンクランプ

11

バブルガム、38バイト

0000000: 73 2f 4a 4d 2d c9 cc 4b 2f d6 51 08 c8 49 cc 4b 2d 51 04  s/JM-..K/.Q..I.K-Q.
0000013: 04 51 2d 4b cc 49 c8 08 51 d6 2f 4b cc c9 2d 4d 4a 2f 73  .Q-K.I..Q./K..-MJ/s


8

CJam、41バイト

デニスに3バイトの情報を提供してくれてありがとう。

"!tenalP ,sgniteerG";"Greetings, Planet!"

2
文字列を反転する必要があります。今、あなたは正しい出力をポップし、逆の出力を印刷しています。
NinjaBearMonkey

@NinjaBearMonkeyおっと。修正。
The_Basset_Hound

GolfScriptでも動作します。
イルマリカロネン


6

JavaScript、56バイト

これはどのブラウザでも実行できます。

alert("Greetings, Planet!")//)"!tenalP ,sgniteerG"(trela

に置き換えるprint/tnirpalert/trela、他のエンジンでも機能します。
ETHproductions

@ETHproductionsは、私がそれを考えていなかったとは信じられません、ありがとう!
ダウンゴート


右your're @jrich、alert`Greetings, Planet!`//`!tenalP ,sgniteerG`trela52バイトである
Aᴄʜᴇʀᴏɴғᴀɪʟ

5

GolfScript、41バイト

"Greetings, Planet!":"!tenalP ,sgniteerG"

まあ、ノーオペレーション!Web GolfScriptでオンラインで試してください。

ソースコードの後半は、文字列を2番目の文字列に格納します。

"Greetings, Planet!":"!tenalP ,sgniteerG"
"!tenalP ,sgniteerG"

印刷します

Greetings, Planet!Greetings, Planet!

5

C ++、129バイト

コメントなしでこれを行おうとすると、私には見えない方法で、深くて暗いプリプロセッサの悪夢に私を導きました。代わりに、できるだけ短くすることを目指しています。

/**/
#include<cstdio>
int main(){puts("Greetings Planet!");}//*/
/*//};)"!tenalP sgniteerG"(stup{)(niam tni
>oidtsc<edulcni#
/**/

5

Python 3、57バイト

print('Greetings, Planet!')#)'!tenalP ,sgniteerG'(tnirp

括弧の問題を修正しました。

Python 2、53バイト

print'Greetings, Planet!'#'!tenalP ,sgniteerG'tnirp

Python 2では必要な括弧とスペースがないという利点を利用しましたが、それほど大きな違いはありませんでした。


5

ゼリー、非競合

25バイト この答えは、Jellyの作成よりも前のチャレンジなので、競合しません。

»1ị“RsẈḄ,#ʠU“Uʠ#,ḄẈsR“ị1»

コメントはありません!オンラインでお試しください!

使い方

»1ị“RsẈḄ,#ʠU“Uʠ#,ḄẈsR“ị1»  Main link. No arguments.

   “        “        “  »  Decompress all three strings; yield a list of strings.
    RsẈḄ,#ʠU               (decompresses to 'Greetings, Planet!')
             Uʠ#,ḄẈsR      (decompresses to ' WafdkmC Posited,')
                      ị1   (decompresses to 'Taarhus')

»1                         Take the maximum of the default argument (0) and 1.
  ị                        Select the string at the index to the left.

4

スタック、41バイト

"Greetings, Planet!"p"!tenalP ,sgniteerG"

CJamの回答にかなり似ていますが、印刷コマンドが発行された場合にスタックすることを除き、自動スタック印刷は抑制されます。


3

Mathematica、52バイト

Print@"Greetings, Planet!""!tenalP ,sgniteerG"@tnirP

また、Null "!tenalP ,sgniteerG"[tnirP]印刷されないを生成します。


1
参考までに、これはタイトル/スコアとコードだけであるため、多くの回答(これを含む)が低品質キューに投げ込まれています。それには何の問題もありませんが、自動フラグが付けられないように、テキスト(説明など)を追加することを検討できます。
メゴ

@Megoさて、彼らはかなり自明だと思いました。
LegionMammal978

1
説明の欠如が悪いことだとは言っていません(説明のある回答はより多くの賛成票を得る傾向がありますが)、あなたの(有効な)回答が長さのために自動フラグが付けられていることをお知らせします。:)
メゴ

2
Echoinで2バイト節約できますv10.3
shrx

3

核分裂45 43バイト

2バイトを節約してくれたjimmy23013に感謝します。

;"!tenalP ,sgniteerG"R"Greetings, Planet!";

オンラインでお試しください!

R右に移動する原子を初期化します。"文字列モードを切り替えます。このモードでは、必要な文字列をSTDOUTに出力してからを押す;と、アトムが破壊されてプログラムが終了します。前半は単に実行されることはありません。


@ jimmy23013正直に言うと、手がかりがありません。ありがとう。
マーティンエンダー


2

STATA、52バイト

di "Greetings, Planet!"//"!tenalP ,sgniteerG" id

コメントを使用しない少し長い(53バイト)バージョンは次のとおりです。

#d
di "Greetings, Planet!";"!tenalP ,sgniteerG" id
d#

#d [something];[something]がcrでない限り、区切り文字(最初はキャリッジリターン)を変更するため、最初のコマンドは区切り文字を;に変更し、2番目は文字列を出力し、3番目(最後まで続く)は明らかにnopです。理由を考えます。これはエラー(認識されないコマンド "!tenalP、sgniteerG"または何か)をスローすると推測していましたが、明らかにそうではありません。


2

Japt、29バイト

このプログラミング言語は、質問の投稿後に作成されましたが、この質問用には作成されていません。

`!t?ÓP ,?Ä>ÎG`;`GÎ>Ä?, PÓ?t!`

オンラインでお試しください!

それぞれ?は、印刷できないUnicode文字です:それぞれU + 0082、U + 000F、U + 000F、およびU + 0082。

おもしろい事実:Japtが1か月早く公開されていたなら、合法的にこの挑戦に勝ったでしょう。


2

APL、41バイト

'Greetings, Planet!'⍝'!tenalP ,sgniteerG'

APLでは、最後の値が出力され、ランプ文字(⍝)がコメントを開始します。


こんにちは、PPCGへようこそ!素晴らしい答えです!
-NoOneIsHere


2

TCL、80バイト

proc unknown args {puts "Hello World!"}
}"!dlroW olleH" stup{ sgra nwonknu corp

説明:TCLはunknown、未定義コマンドの呼び出しを検出すると、グローバルプロシージャを実行します。最初の行は、そのプロシージャを単純な「hello world」プログラムに再定義します。

TCLの引用規則は非常に微妙です。開き中かっこは、次の一致する閉じ中かっこまで続く引用語句を開始し、ネストされた引用語句を許可します。それ以外の場合、中括弧は通常の文字として扱われます。5つの単語:}"!dlroW olleH"stup{sgranwonknucorp。指定}"!dlroW olleH"されたコマンドは定義されていないため、undefined代わりに最初の行のprocが呼び出されます。

同様の質問が、古代のStackOverflowに投稿されました。閉じられて削除されました。私はこの回答で頬TCLサンプルのソリューションを舌として使用し、説明を求めるコメントを受け取っているので、ここで回答を再作成します。




1

Unefunge 98-49バイト

"!tenalP ,sgniteerG<DC1>"k,@,k"<DC1>Greetings, Planet!"

上記のコードには、で表されるコード17(デバイス制御1)の2つの印刷できない文字が含まれてい<DC1>ます。


1

MSM、73バイト

GGreetings, Planet!.................,.................!tenalP ,sgniteerGG

真ん中の直前の前半,は、G右端の追加を含む逆の挨拶文字列を構築します。真ん中,はそれを落とし、残りは標準的な「Hello / Greeting / whatever」プログラムです。メッセージにはが含まれているため、両端に追加の文字が必要です,。左側のものが実行され、がドロップされsます。両方,sあり、左の連結ドット、したがってGsの置換が必要です。,右側には、最終的な文字列に実行されますが、ビルドされていません。


1

CoffeeScript、53バイト

RubyとLuaに似ており、ほとんどすべてのバリアントがここにあります。

alert 'Greetings, Planet!'#'!tenalP ,sgniteerG' trela


1

Bash、52 48バイト

echo Greetings, Planet!||!tenalP ,sgniteerG ohce

ksh、zsh、yash、dashでも動作します。しかし、tcshではありません。

$ cat x.sh
echo Greetings, Planet!||!tenalP ,sgniteerG ohce
$ bash x.sh
Greetings, Planet!
$ ksh x.sh
Greetings, Planet!
$ zsh x.sh
Greetings, Planet!
$ yash x.sh
Greetings, Planet!
$ dash x.sh
Greetings, Planet!
$ tcsh x.sh
tenalP: Event not found.
$

1
すべての引用符を削除します。
マナトワーク

1
ああ、bashの答えはpython = /よりも短かった。ふりだしに戻る!
アシュウィングプタ

1

Lua、52バイト

print"Greetings, Planet!"--"!tenalP ,sgniteerG"tnirp

Luaターミナルでは、わずか44バイトです。

="Greetings, Planet!"--"!tenalP ,sgniteerG"=

私の悪い。アラートをありがとう!
デジタルVeer

すべての括弧を削除します。単一の文字列パラメーターを持つ関数の場合、それらはオプションです。
マナトワーク

Lua 5.3は=端末では必要ないため、そこから2バイト離れています。私はそれが2015年に存在したと思いますが、カントーはわかりません。
valは、モニカを

1

天の川1.5.1043の 41 39バイト

"Greetings, Planet!"!tenalP ,sgniteerG"

説明

"Greetings, Planet!"                       # push the string to the stack
                    !                      # output the TOS
                     tenalP ,sgniteerG"    # throws an error and exits

使用法

python3 milkyway.py <path-to-code>

あなたはなかった本当にコメントがありますか?これがスタックベースの場合(暗黙的な出力なし)、スタックの出力のみが機能します。
アディソンクランプ

あなたが正しい!ありがとう。@FlagAsSpam
ザック・ゲイツ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.