J-1 in 11 17 = 1.978 x 10 -18
;(?11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11){~.;:(,,,{:,{:)';(?11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11){~.;:(,,,{:,{:)'''
Jには、これらの種類のジョブを実行するための便利な小さなツールがたくさんあります。
まず、スペースで区切られた数字の文字列は1つのトークンです。これは、これらの数値の1次元配列を意味します。これがJのレクサーの仕組みです。ちなみに、11
誰かが好奇心if盛なら、それは17 秒です。
(,,,{:,{:)'QUINE'''
は、Jの一般的なクイントリックであり、できるだけ少ないトークンを使用するように作られています:Tailを{:
意味するため、文字列を自分自身に追加し、最後の文字のコピーをその末尾に追加します 最後の文字は一重引用符であるため(JはPascalスタイルの文字列を使用)、結果はになります。QUINE'QUINE'''
;:
はトークナイザーであり、入力文字列をJコードであるかのように分割し、ボックスのリストを返します。この結果の長さは17です。
~.
この配列のすべての一意の要素を取ります。この結果の長さは11です。
?
Rollと呼ばれます。引数内の整数ごとに、ゼロ以上でその数より小さい正の乱数を選択します。したがって、Jは0から10までの17個の数値を生成します。
{
ランダムインデックスを使用して、unique-tokens-in-boxesのリストからアイテムを選択します。
;
これらすべてのボックスを開き、結果を一緒に実行します。
次に例を示します。インデントされた行は入力プロンプトであり、左側に並ぶ行はインタープリターの出力です。
;(?11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11){~.;:(,,,{:,{:)';(?11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11){~.;:(,,,{:,{:)'''
~.~.(?;;:11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11';(?11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11){~.;:(,,,{:,{:)'''(){11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11){(;:;
;(?11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11){~.;:(,,,{:,{:)';(?11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11){~.;:(,,,{:,{:)'''
{';(?11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11){~.;:(,,,{:,{:)''',?{:;:{:';(?11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11){~.;:(,,,{:,{:)'''11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11{:{;(;:{:,~.