CJam、45 41 38 35バイト
{`"OX$_?"+_l&{{H)+`}/"\He,}":)}&}_~
入力文字がcharacterのいずれでもない場合"$&)+,/:?HOX\_`el{}
、このプログラムは、以下のわずかに変更されたバージョンを出力します。オンラインでお試しください!
{`"OX$_?"+_l&{{H)+`}/"\He,}":)}&}OX$_?
それ以外の場合、プログラムは次の変更の難読化されたバージョンを出力します。オンラインでお試しください!
''r'4'a'j'6'q'Q'4'='q'~'8'''Z';'='r''A'4'n'Z'w'>''4'L';''8''a'j'6'q'Q]If-~
一部の文字は印刷できないことに注意してください。オンラインでお試しください!
使い方
{`"OX$_?"+_l&{{H)+`}/"\He,}":)}&}_~
{ } Define a code block.
_~ Push a copy and execute the copy.
` Push a string representation of the block.
"OX$_?" Push that string.
+_ Concatenate and push a copy.
l& Intersect the copy with the input.
{ }& If the intersection is non-empty:
{ }/ For each character of the concat. strings:
H) Push 18.
+ Add it to the character.
` Inspect; turn 'c into "'c".
"He,}" Push that string.
:) Increment each char. Pushes "If-~"
最初の可能な出力プログラムでは~
、他のプログラムで使用できるように使用することは避けています。したがって、の代わりに_~
、変更されたプログラムはで終わりOX$_?
、次のように機能します。
O Push "" (falsy).
X$ Push a copy of the code block.
_ Push yet another copy.
? Ternary if; since "" is falsy, execute the second copy.
最後に、残りの出力プログラムでは、
''r'4'a'j'6'q'Q'4'='q'~'8'''Z';'='r''A'4'n'Z'w'>''4'L';''8''a'j'6'q'Q]
これらのすべての文字を配列にラップし、次の文字列をプッシュします。
"'4aj6qQ4=q~8'Z;=r'104nZw>'4L;'8'j6qQ"
If-
各文字コードから18を引き、文字列をプッシュします
"{`\"OX$_?\"+_l&{{H)+`}/\"\He,}\":)}&}OX$_?"
これは~
評価します。
e
です。