この課題は、Can you Meta Quineに似ていますか?
クインは、STDOUTで自身を生成するプログラムです。この課題は、実行時にSTDOUTでプログラムBを生成するプログラムAを生成することです。プログラムBを実行すると、STDOUTでプログラムAが生成されます。プログラムAとBは、同じ言語で作成(および実行)する必要があります。リンクされた質問はA!= Bを制約しました。それはあまりにも簡単に見えました。そのため、この質問では、AとBは次のルールを使用してアンチキンであると主張します。
- プログラムAとBは、同じ文字を使用したり、空白やステートメントの区切り文字、句読点を保存したりすることはできません。
- プログラムAおよびBには、それぞれ、空白でもステートメント区切り文字でも句読点文字でもない文字が少なくとも1つ含まれている必要があります。
- ルール1および2の目的のために、「空白」という用語は、それ自体が解釈される(セパレータではなく)ステートメント、演算子、またはシンボルであるシンボルまたはシンボルのシーケンスを除外します。したがって、ホワイトスペース言語では、ホワイトスペースはありません。
- ステートメント分離文字は、ステートメントを分離するために言語内で従来使用されている構文要素です。これには、Pythonの改行、またはJava、perlまたはCのセミコロンが含まれます。
- 句読点文字は、空白でもPOSIX単語文字クラスでもないASCII文字です(つまり、この目的ではアンダースコアは句読点ではありません)。つまり
ispunct()
、trueを返しますが、そうではありません_
。 - 実行時のプログラムAは、STDOUTでプログラム(プログラムB)を生成する必要があり、そのプログラムは、実行時にプログラムAを生成します。
- プログラムAとBは同じプログラミング言語である必要があります。
- 使用されるプログラミング言語は、実際にはプログラミング言語でなければなりません。良いケースを別の方法で作らない限り、チューリング完全でなければなりません。
- AとBの少なくとも1つは、言語内で少なくとも1つのステートメントを実行する必要があります。
これはコードゴルフであるため、最短回答が勝ち、スコアはプログラムAの長さ(バイト)です(つまり、プログラムBの長さは関係ありません)。
最初の句の例外のリストに「句読点」を追加してください。それ以外の場合、多くの言語(特に、メイン関数で中括弧を必要とする言語)でこのタスクを解決することは不可能です。
—
FUZxxl 14
関連していますが、おそらく十分に異なっています。
—
マーティンエンダー14
@FUZxxl句読点は許可しましたが、アンダースコアは除外しました。
—
abligh
ここでの目的のために、異なる「キャラクター」
—
HostileForkは、SEを信頼してはいけないと言っています14
A
とa
見なされますか?
ルール5に一致するASCII文字の完全なリストを提供した方が良いでしょう
—
。– SEはEVILであるため、aditsuは終了し