30言語、248バイト、248/30 ^ 3 = 0.009185
#|#?15g,@ kkmNmSaIeoe99+{\#/-;n@0ea
#[9!@>.>.eeaww#-1@*"12" L
#{
###
#`{
25
print(4^2 +7)/2
"""
Jo is here.
$'main'MoO OOM
7
>Jo, 30
>X Jo
f::=~27
::=]##}#(prin 29)
print (7/6*24)###;alert 2#-[>+<-----]>-.|#(write(if(= 1/5 .2)26 3))"""
編集: Beatnikでの素数テストは不可能な可能性があるため、Beatnikは削除されました。
コードにはタブがあり(Stack Exchangeによってマングルされます)、末尾に改行がありますxxd
。
00000000: 237c 233f 3135 672c 4020 2020 0920 2020 #|#?15g,@ .
00000010: 206b 6b6d 4e6d 5361 4965 6f65 3939 2b7b kkmNmSaIeoe99+{
00000020: 5c23 2f2d 3b6e 4030 6561 0a23 5b39 2140 \#/-;n@0ea.#[9!@
00000030: 3e2e 3e2e 6565 6177 7723 2d31 402a 2231 >.>.eeaww#-1@*"1
00000040: 3222 094c 0a23 7b20 090a 2323 230a 2360 2".L.#{ ..###.#`
00000050: 7b0a 3235 0a70 7269 6e74 2834 5e32 202b {.25.print(4^2 +
00000060: 3729 2f32 0a0a 0a22 2222 0a4a 6f20 6973 7)/2...""".Jo is
00000070: 2068 6572 652e 0a24 276d 6169 6e27 4d6f here..$'main'Mo
00000080: 4f20 4f4f 4d0a 2037 0a3e 4a6f 2c20 3330 O OOM. 7.>Jo, 30
00000090: 0a3e 5820 4a6f 0a66 3a3a 3d7e 3237 0a3a .>X Jo.f::=~27.:
000000a0: 3a3d 5d23 237d 2328 7072 696e 2032 3929 :=]##}#(prin 29)
000000b0: 0a70 7269 6e74 2028 372f 362a 3234 2923 .print (7/6*24)#
000000c0: 2323 3b61 6c65 7274 2032 232d 5b3e 2b3c ##;alert 2#-[>+<
000000d0: 2d2d 2d2d 2d5d 3e2d 2e7c 2328 7772 6974 -----]>-.|#(writ
000000e0: 6528 6966 283d 2031 2f35 202e 3229 3236 e(if(= 1/5 .2)26
000000f0: 2033 2929 2222 220a 3))""".
または、この「オンラインで試す」からコードをコピーして貼り付けることもできます。リンク。
これはかなりひどいものですが、十分な言語ができたら、バイトカウントはそれ以上問題にならないという考えをやめたかったのです。まだ簡単に追加できる言語はいくつかありますが(たとえば、Objeck)、現在は長すぎて使い物になりません。しかし、私は良い言語を使い果たしているので、今のところここでやめるかもしれません。
すべてのプログラムを実行します</dev/null 2>/dev/null
(つまり、空の入力、抑制されたSTDERR)。
説明は非常に長いので、ここにエグゼクティブサマリーがあります。
No. Lang. Non-esolang? 2D esolang? BF/BF-deriv?
--------------------------------------------------------------------------
1 COW ✓
2 CoffeeScript ✓
3 Common Lisp ✓
4 Retina
5 Befunge-93 ✓
6 Python 2 ✓
7 Rail ✓
8 ETA
9 Prelude
10 Gol><> ✓
11 evil
12 Foo ✓
13 Ruby ✓
14 ><> ✓
15 Brian & Chuck ✓
16 Whitespace
17 3var
18 Axo ✓
19 Labyrinth ✓
20 Starry
21 Fission ✓
22 Brainfuck ✓
23 Julia ✓
24 Lily ✓
25 GolfScript
26 Chicken Scheme ✓
27 Thue
28 Perl 6 ✓
29 Picolisp ✓
30 TRANSCRIPT
1. 牛
COWは、追加のコマンドを備えたBrainfuck派生物であり、その1つは数値出力です。無効なものはすべて無視されるため、実行されるプログラムは単に
MoO OOM
セルを1に増やしてから、数値として出力します。
CoffeeScriptの見方:
# comments
###
multiline comment
###;alert 2# comment
これは単に警告を発します2。
(はい、おそらく別の言語がこのスロットを取った方が良いでしょうが、私はこの時点で入れ替えるのが面倒です:P)
Common Lisp(clisp)の見方:
#|
multiline comment
|#(write(if(= 1/5 .2)26 3))"""
1/5
は有理数でに等しくない0.2
ため、3が出力されます。処理"""
は構文エラーです。
print
Common Lispでは、先行する改行と末尾のスペースが出力されるように見えることに注意してください。しかし、幸運なことに、write
Common LispとChicken Schemeの両方で動作します。
導入された制限:最初から2行ごとに有効な正規表現である必要があります。
行の各ペアは置換ステージを形成し、最初の行の正規表現の一致のインスタンスを2番目の行に置き換えます。中央にはペアがあります
「」
最初の空の文字列をに置き換えます"""
。ペアの一部ではない最後の空の行は、正規表現の一致数をカウントする一致ステージとして扱われます。空の文字列の4つのインスタンスがであり"""
、すなわち、1"2"3"4
。
Befungeは2D言語であり、関連する指示は
# # 15g,@
最初の行では、と5
で25
ライン。#
、次の命令をスキップし15g
た位置に文字を取得する(1, 5)
コード(中5
に25
ライン)、,
文字を出力して@
停止します。
Pythonは見ています:
# comments
25
print(4^2 +7)/2
"""
multiline string
"""
(4^2+7)/2 = (xor(4,2)+7)/2 = (6+7)/2 = 13/2 = 6
、print
編集されます。
Railは2D言語であり、実行$
はmain関数の南東から始まります。したがって、コードの関連部分は
$'main'
7
o
J
とo
とJ
TRANSCRIPTが使用するラインから来ます。7を出力した後、列車は認識できないJ
命令に当たり、プログラムをクラッシュさせます。
導入された制限: ETAプログラムの前の文字はにしないでくださいetaoinsh
。
ETAは文字etaoinsh
とその大文字バージョンのみを認識します。つまり、コードは
NSaIeoe
n...e
ベース7のためには、デリミタ内何に基づいて数、プッシュSaI
され624
、又は小数で312。o
次に、明らかに256を法としてcharとして出力し、char 8
(コードポイント56)を与えます。e
次に、空のスタックで分割しようとしますが、失敗します。
導入された制限:()
いずれかの列に1つのみ()
、一度に列の読み取りに一致し、による無限ループはありません()
。
これには、PythonインタープリターがNUMERIC_OUTPUT = True
設定されている必要があります。
Preludeは、各行が個別に実行される言語です。多くの文字が実行されますが、重要な部分は
9!
2番目の行では、9を出力します。()
プレリュードではループを示していますが、#
s が顕著であるため(スタックからポップします)、ループがヒットするまでスタックの最上部は常に0であるため、どれもヒットしません。実行されます。()
ただし、導入された余分なスペースに関するPreludeのソースコードの制限。
この部分(および> <>)は、Martinの答えのように機能します。関連するコードは
# ;n@0ea
Gol> <>は2D言語であり#
、IP を反映し、左方向に移動します。ラップアラウンドし、10、14、0をスタックにプッシュします。@
次に、スタックを回転させて、10を先頭にしてn
出力し;
、プログラムを停止します。
この部分もマーティンの答えに似ています。
evilは、小文字以外のすべてを無視します。さらにいくつかの文字を無視すると、関連する部分は
aeeeaeeaww
ここで、a
変数をインクリメントしA
、e
ビットシャッフルの悪織り関数でありA
、そしてw
出力A
。したがって、を1
2回出力して、を与え11
ます。
しかし、残りの指示、特にw
最後の行についてはどうでしょうか?単にコードを台無しにして、それがここで何らかの形で機能したすべてのものでまだ機能することを祈るのが最も簡単であると言ってみましょう...
Fooは二重引用符の間のすべてを出力するため、関連する部分は
"12"
2行目。ただし、後で二重引用符が必要になるため、Martinの答えに似た方法を使用してFooエラーを排除します#-1@
。空のスタックとゼロエラーによる除算に直面して兵士が使用する言語でなぜそれが機能するのかは不明ですが、それが嬉しいです。
Pythonと同様、Rubyは次のことを認識しています。
# comments
25
print(4^2 +7)/2
"""
multiline string
"""
しかし、それは複数行の文字列は、実際には3つの別個の文字列であることは注目に値します(""
、"..."
、""
)一緒に連結。印刷行(4^2+7) = xor(4,2)+7 = 6+7 = 13
はnil
、2で除算しようとしてエラーになる前に出力します。
この部分はGol> <>部分と同じです@
が、14が代わりに上部に表示され、出力されます。
Brian&Chuckは、2本のテープを持つBF派生物です。1本のテープの命令ポインターは、もう1本のテープのメモリポインターです。がない場合```
、ソースコードの最初の2行がテープの初期化に使用されます。
最初の2行の関連する文字は次のとおりです。
?15
# >.>.
?
ブライアンのテープでは、(指されているセル内のチャックに制御を渡すオーバー#
)が非ゼロです。次に>.>.
、Chuckが実行され、疑問符の後に2つの文字が出力されます。
STL
それぞれスペース、タブ、ラインフィードを使用して、プログラムの開始は次のとおりです。
SSSTSSSSL
TL
STL
L
L
最初の行は16(+10000
基数2)をプッシュし、前の行TLST
はそれを数字として出力します。次の3つの改行はプログラムを停止します。
ただし、このプログラムはインタープリター固有であることに注意してください。ほとんどのインタープリターの残りのコード構文エラーは、上記のリンクのように、より寛容なインタープリターが必要です。
最初の行では、多数の命令が実行されますが、関連する命令は次のとおりです。
kkmmao#/
ETAの制限によりk
、変数B a
をインクリメントするのではなく、デクリメントするために使用します。kk
Bを-2にデクリメントし、Bをmm
2倍にして16にしa
ます。これはで17に増加します。これはで出力されo
ます。
#
次に、Bを0にリセットするために使用され、0 /
による除算を介してプログラムがエラーになります。
導入された制限: IPの方向を変更するAxoプログラムの前の指示なし
もう一度、最初の行で多数の命令が実行されますが、関連する命令は次のとおりです。
# # 15 ,@ 9 9 + { \
AxoはBefungeのような2D言語であり、#
同様に次の命令をスキップするブリッジですが、スタックのトップがゼロの場合のみです。15,
スタックにプッシュしますが、スタックはで空になり@
ます。99+
次に、18を押して{
出力し、\
停止します。
ラビリンスは別の2D言語であり、実行される命令は
#|#
[9!@
#
スタックの長さをプッシュします。最初は0です。|
は、ビット単位のORであり、スタックはこの時点で0を持っているだけなので、何も変更せず、2番目#
はゼロの孤立により1をプッシュします。1のため右に曲がり、9
この1を1*10+9 = 19
に変換し、!
印刷して@
停止します。
このプログラムは、[
現在認識されている命令ではないという事実に依存しているため、壁として扱われます。
導入された制限:すべて+
のsには少なくとも1つの先行スペースが必要です
認識されない文字を取り除くと、コードの関連部分は
, +.. +
,
が入力されますが、そこからパイプする/dev/null
ので、0をスタックにプッシュします。前のスペースを含むA +
はn >= 5
pushするn-5
ため、次の命令は2をプッシュし、..
これら2桁を逆の順序で出力します。
次に+
、単一の先行スペースがあり、複製されます。ただし、スタックは空なので、エラーが発生します。
核分裂に関連する唯一の部分は
*"12"L
L
左に移動する原子を生成し、"21"
21を出力して*
停止します。
導入された制限:.
最初の前にありません[
これには、EOFに0を与え、8ビットセルを持つインタープリターが必要です。関連するコードは
,+-[>.>.-+.>,>]-[>+<-----]>-..
initalは-
オフセットすること+
、及び第一の[...]
セルが0以下であるので、実行されない-[>+<-----]>-
の文字コードにセット細胞2
、及び..
二回出力します。
ジュリアは見ています:
# comments
25
print(4^2 +7)/2
印刷されるのは4^2+7 = pow(4,2)+7 = 16+7 = 23
であり、プログラムはnothing
2で除算しようとしてエラーになります。Juliaは、コードの残りの部分が構文エラーを引き起こすという事実を気にしていないようです。
リリーは見ている:
# comment
#[
multiline comment
]## comment
print (7/6*24)# comment
7/6*24 = 1*24 = 24
印刷されます。
GolfScriptの見方:
# comments
25
print(
GolfScriptはスタックベースであるため、25はスタックにプッシュされ、ポップしてで印刷されprint
ます。(
次に、スタック上の暗黙的な空の文字列をデクリメントしようとしますが、失敗するとプログラムがエラーになります。
Chicken Schemeには、#| ... |#
Common Lisp と同じ複数行コメント構文があります。ただし、
(write(if(= 1/5 .2)26 3))
1/5
フロートであるに等しい0.2
ので、26が代わりに出力されます。
Thueは、文字列の書き換えに基づく言語です。最初の関連部分は
f::=~27
::=
は、置換を定義し、で置換f -> 27
の終了を示し::=
ます。次に、ローンf
インif
がに置き換えられ、27
出力されます。
Perl 6には新しいコメント構文があります。つまり#`(some bracket)
、一致するブラケットまでの複数行コメントです。したがって、Perl 6は以下を認識します。
# comments
#`{
multiline comment
}# comment
print (7/6*24)# comment
を印刷し7/6*24 = 28
ます。
Picolispの見方:
# comment
#{
multiline comment
}#(prin 29)
29を出力します。その後の行は構文エラーを引き起こします。
TRANSCRIPTは、テキストアドベンチャーをモデルにしたテーマ別のエソランです。認識されない行は無視されます(これにより、実際のコード命令の中に追加のストーリー/フレーバーテキストを追加できます)。したがって、関連する行は次のとおりです。
Jo is here.
>Jo, 30
>X Jo
最初の行はJo
、1文字の名前が失敗したように見えるため、2文字の名前を使用して文字列変数を宣言します。2行目はこの文字列を"30"
に設定X
し、3行目の( "examine")によって出力されます。
2.7.1
にします2.7.n
。(実際には、sweerpotatoはメジャーバージョンでそれを行います。)