あなたの仕事は、「Greetings、Planet!」を印刷するプログラムを作成することです。正確にコンソールに。簡単そうですね。さて、ここにトリックがあります。コードは回文でなければなりません。つまり、左から右と同じように右から左に読みます。標準の抜け穴は許可されていません。
あなたの仕事は、「Greetings、Planet!」を印刷するプログラムを作成することです。正確にコンソールに。簡単そうですね。さて、ここにトリックがあります。コードは回文でなければなりません。つまり、左から右と同じように右から左に読みます。標準の抜け穴は許可されていません。
回答:
"!tenalP ,sgniteerG"
"Greetings, Planet!"
これは、プログラムの最後の行が画面に表示され、最初の文字列が基本的にコメントとして扱われるために機能します。
各小文字は2バイトとして保存され、残りの文字は1バイトです。ルールを曲げてすべて大文字で印刷すると、41バイトになります。
"!TENALP ,SGNITEERG"
"GREETINGS, PLANET!"
e
and i
(数字)を使用できますか?
私はこれが少し遅れていることを知っています(そして少し気難しい)が...
x"!tenalP ,sgniteerG"!|o|!"Greetings, Planet!"x
これらの答えは他のすべてとは少し異なります。以下のためのチャンスがあり、コードのいずれかの方向に実行されるが。
したがって、「コンソールへの印刷」とは、標準出力への印刷を意味すると想定しました。これによりエラーがスローされます。文字列がstdoutに出力された後、エラーがstderrにスローされます。
これが両方の方法で機能することを証明するために、「ランダムな方向」ディレクター「x」を使用しました。Fishは2次元の言語です。そのため、監督がどの方向を指していても、コードは(最終的に)実行されます。
最初の監督が右を指していると仮定すると、キャラクターは「スタック」に逆順でロードされ、逆の逆(または通常のテキスト)が印刷されます。
両方の監督が左を指していると仮定すると、キャラクターは再び逆順に「スタック」にロードされます(コードはここで逆方向にロードするため、方向は左になります)、そして逆の逆(または通常のテキスト)が印刷されます。
ランダム化されたディレクターが上向きまたは下向きの場合、これは重要ではありません-魚は、コードの下側または上側にループして、ランダマイザーに戻ります。このようにして、実行するコードに向かって内側を指すまで、ランダマイザーでループし続けます。
!|o|!
ビットは両側から、次のことを行います。
!
次の命令をスキップします(常にスキップします|
)
|
リフレクターです。それはに向かって内向きに戻りo
ます。
o
スタックの現在のアイテムをキャラクターとしてコンソールに出力し、スタックから削除します。
それで、本質的に、これは「一緒に押された浴室の2つの鏡」トリックであり、私はもうできないまで出力します。
猫の絵文字を使用しています。>o<
出力を無限にリダイレクトしますが、それでもエラーがスローされますが、リフレクションにスキップを使用しないで済ませることができます。
私は最初は正しかったことがわかりました。2回目の試みは回文ではありませんでしたが、それは反射的でした。
x"!tenalP ,sgniteerG"!;oooooooooooooooooo;!"Greetings, Planet!"x
この男はもう少し長いです。
同じランダム化された矢印関数(両方の方法で動作することを証明するため)があり、stderrには出力されません。
ここでの違いは明らかです。文字通り、スタック内のすべてのアイテムを出力し、実行をで終了し;
ます。
!;
以下のように、直ちに実行を終了しない!
スキップ(この場合、エンドEXEC、)次の項目を、それがとして作用する他の側面を、当たるまで継続;!
それが何をスキップする前に、それが実行を終了しており、。
短い回答と同じランダム化された方向パターンに従います。
print "Greetings, Planet!""!tenalP ,sgniteerG" tnirp
コメントを使用しないソリューション。(主にマカロニにコメントがないため...)
デニスに3バイトの情報を提供してくれてありがとう。
"!tenalP ,sgniteerG";"Greetings, Planet!"
!tenalP ,sgniteerG"Greetings, Planet!
数バイト節約します。
これはどのブラウザでも実行できます。
alert("Greetings, Planet!")//)"!tenalP ,sgniteerG"(trela
print/tnirp
とalert/trela
、他のエンジンでも機能します。
alert`Greetings, Planet!`//`!tenalP ,sgniteerG`trela
52バイトである
"Greetings, Planet!":"!tenalP ,sgniteerG"
まあ、ノーオペレーション!Web GolfScriptでオンラインで試してください。
ソースコードの後半は、文字列を2番目の文字列に格納します。
"Greetings, Planet!":"!tenalP ,sgniteerG"
"!tenalP ,sgniteerG"
印刷します
Greetings, Planet!Greetings, Planet!
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.
Print@"Greetings, Planet!""!tenalP ,sgniteerG"@tnirP
また、Null "!tenalP ,sgniteerG"[tnirP]
印刷されないを生成します。
Echo
inで2バイト節約できますv10.3
。
コード:
”!º¥,ÁÙ””ÙÁ,¥º!”
説明:
”!º¥,ÁÙ” # Compressed string which results in "! Crm, Everywhere".
”ÙÁ,¥º!” # Compressed string which results in "Greetings, Planet!".
# Top of stack is implicitly outputted.
di "Greetings, Planet!"//"!tenalP ,sgniteerG" id
コメントを使用しない少し長い(53バイト)バージョンは次のとおりです。
#d
di "Greetings, Planet!";"!tenalP ,sgniteerG" id
d#
#d [something]
;
[something]がcr
でない限り、区切り文字(最初はキャリッジリターン)を変更するため、最初のコマンドは区切り文字を;
に変更し、2番目は文字列を出力し、3番目(最後まで続く)は明らかにnopです。理由を考えます。これはエラー(認識されないコマンド "!tenalP、sgniteerG"または何か)をスローすると推測していましたが、明らかにそうではありません。
このプログラミング言語は、質問の投稿後に作成されましたが、この質問用には作成されていません。
`!t?ÓP ,?Ä>ÎG`;`GÎ>Ä?, PÓ?t!`
それぞれ?
は、印刷できないUnicode文字です:それぞれU + 0082、U + 000F、U + 000F、およびU + 0082。
おもしろい事実:Japtが1か月早く公開されていたなら、合法的にこの挑戦に勝ったでしょう。
'Greetings, Planet!'⍝'!tenalP ,sgniteerG'
APLでは、最後の値が出力され、ランプ文字(⍝)がコメントを開始します。
proc unknown args {puts "Hello World!"}
}"!dlroW olleH" stup{ sgra nwonknu corp
説明:TCLはunknown
、未定義コマンドの呼び出しを検出すると、グローバルプロシージャを実行します。最初の行は、そのプロシージャを単純な「hello world」プログラムに再定義します。
TCLの引用規則は非常に微妙です。開き中かっこは、次の一致する閉じ中かっこまで続く引用語句を開始し、ネストされた引用語句を許可します。それ以外の場合、中括弧は通常の文字として扱われます。5つの単語:}"!dlroW olleH"
、stup{
、sgra
、nwonknu
とcorp
。指定}"!dlroW olleH"
されたコマンドは定義されていないため、undefined
代わりに最初の行のprocが呼び出されます。
同様の質問が、古代のStackOverflowに投稿されました。閉じられて削除されました。私はこの回答で頬TCLサンプルのソリューションを舌として使用し、説明を求めるコメントを受け取っているので、ここで回答を再作成します。
このプログラミング言語は、質問の投稿後に作成されましたが、この質問用には作成されていません。
"!tenalP、sgniteerG" Z "Greetings、Planet!"
Z
STDOUTへのスタック内の文字出力のすべて。
GGreetings, Planet!.................,.................!tenalP ,sgniteerGG
真ん中の直前の前半,
は、G
右端の追加を含む逆の挨拶文字列を構築します。真ん中,
はそれを落とし、残りは標準的な「Hello / Greeting / whatever」プログラムです。メッセージにはが含まれているため、両端に追加の文字が必要です,
。左側のものが実行され、がドロップされs
ます。両方,
でs
あり、左の連結ドット、したがってG
sの置換が必要です。,
右側には、最終的な文字列に実行されますが、ビルドされていません。
RubyとLuaに似ており、ほとんどすべてのバリアントがここにあります。
alert 'Greetings, Planet!'#'!tenalP ,sgniteerG' trela
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.
$
"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>