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派生类,带有其他命令,其中之一是数字输出。任何无效的东西都会被忽略,所以执行的程序仅仅是
MoO OOM
将单元格增加到1,然后将其打印为数字。
CoffeeScript看到:
# comments
###
multiline comment
###;alert 2# comment
只是发出警报2。
(是的,如果另一种语言占据这个位置可能会更好,但是我现在懒得重新洗牌了:P)
Common Lisp(剪辑)看到:
#|
multiline comment
|#(write(if(= 1/5 .2)26 3))"""
1/5
是一个有理数,不等于0.2
,因此打印3。进行过程"""
是语法错误。
请注意,这print
似乎在Common Lisp中输出了前一个换行符和尾随空格。但是,幸运的是,它write
可以在Common Lisp和Chicken Scheme中使用。
引入的限制:从第一行开始的第二行必须是有效的正则表达式。
每对线形成一个替换阶段,用第二行替换第一行的正则表达式匹配项的实例。在中间,我们有一对
“”
它将初始空字符串替换为"""
。最后的空行(不是任何对的一部分)被视为匹配阶段,计算正则表达式的匹配数目。中有四个空字符串实例"""
,即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
ed。
Rail是2D语言,其执行从$
主要功能的东南开始。因此,代码的相关部分是
$'main'
7
o
J
与o
和J
未来通过从使用TRANSCRIPT线。输出7后,火车撞到了无法识别的J
指令,这使程序崩溃。
引入的限制: ETA程序之前的字符不应位于etaoinsh
。
ETA仅识别字母etaoinsh
及其大写版本,这意味着代码以
NSaIeoe
n...e
根据定界符中的内容推送以7为底的数字,for SaI
是624
或十进制312。o
然后输出为char,显然是在取模256之后,给出char 8
(代码点56)。e
然后尝试除以空堆栈,这将失败。
引入的限制:()
在任何列中最多()
只能有一个,一次可以匹配读取一列,不会引起无限循环()
。
这需要Python解释器进行NUMERIC_OUTPUT = True
设置。
前奏是一种语言,其中每行分别执行。许多字符被执行,但重要的是
9!
在第二行中,输出9。()
在Prelude中表示一个循环,但是由于#
s 的突出(从堆栈弹出),所以在命中循环时堆栈的顶部始终为0,因此它们都不存在正在运行。Prelude的源代码限制()
虽然引入了一些多余的空间。
这部分(和> <>)的工作方式类似于Martin的答案。相关代码是
# ;n@0ea
Gol> <>是2D语言,可#
反映IP,使其向左移动。它回绕,将10、14和0压入堆栈。@
然后旋转堆栈,将10移到顶部,将其n
输出并;
暂停程序。
这部分也类似于马丁的答案。
邪恶会忽略除小写字母以外的所有内容。忽略了几个字符,相关的部分是
aeeeaeeaww
其中a
递增变量A
,e
是洗牌的比特恶的编织功能A
,和w
输出A
。因此,我们输出1
两次,给出11
。
但是其余的说明,特别是w
最后一行的说明呢?我们可以说有时候混淆代码并祈祷它仍然可以在所有可以正常工作的地方工作是最容易的...
Foo在双引号之间输出任何内容,因此相关部分是
"12"
在第二行。但是,由于以后需要双引号,因此我们使用类似于Martin的答案的方法来使Foo出错,即上述方法#-1@
。目前尚不清楚为什么这种语言能以一种在空堆和零错误除以的情况下被士兵使用的语言工作,但我很高兴这样做。
像Python一样,Ruby看到:
# comments
25
print(4^2 +7)/2
"""
multiline string
"""
然而,值得注意的是,多串实际上是三个独立的字符串(""
,"..."
,""
)连接在一起。打印行输出(4^2+7) = xor(4,2)+7 = 6+7 = 13
,在错误尝试除以nil
2 之前输出。
该部分与Gol> <>相同,除了@
将14向上移动到顶部,然后将其输出。
Brian&Chuck是具有两个磁带的BF派生词,其中一个磁带的指令指针是另一磁带的内存指针。在没有的情况下```
,源代码的前两行用于初始化磁带。
前两行中的相关字符为:
?15
# >.>.
在?
Brian的胶带在细胞中指出,(过到卡盘传递控制#
)为非零值。然后Chuck执行>.>.
,在问号后输出两个字符。
分别使用STL
空格,制表符和换行符,该程序的开始是:
SSSTSSSSL
TL
STL
L
L
第一行按16(+10000
基数2),前一行将其TLST
打印为数字。接下来的三行换行暂停了该程序。
但是请注意,该程序特定于解释器。大多数解释器中的其余代码语法错误,因此需要更宽松的解释器,如上面链接的解释器。
在第一行中,执行了许多指令,但相关的指令是
kkmmao#/
由于ETA的限制,我们使用k
减量B而不是a
增加变量B。kk
将B减至-2,将mm
B平方两次至16,并使用递增至17 a
。然后将其输出o
。
#
然后用于将B重置为0,并/
导致该程序通过除以0来出错。
引入的限制: Axo程序之前没有指令可更改IP的方向
再次,在第一行执行了大量指令,但是相关的指令是
# # 15 ,@ 9 9 + { \
Axo是一种类似于Befunge的2D语言,并且#
类似地是一个桥,它跳过下一条指令,但前提是堆栈的顶部为零。15,
推送到堆栈,但是用清空了堆栈@
。99+
然后按18,{
输出并\
停止。
迷宫是另一种2D语言,执行的指令是
#|#
[9!@
#
推栈的长度,第一次为0。|
是按位或,因此不做任何更改,因为堆栈此时仅具有0,并且#
由于唯一的零,第二个堆栈现在压入1。由于1,我们向右转,9
将此1转换为1*10+9 = 19
,将其!
打印并@
暂停。
该程序依赖于[
当前不是公认的指令的事实,因此被视为隔离墙。
引入的限制:所有都+
必须至少有一个前面的空格
如果我们去除无法识别的字符,则代码的相关部分为
, +.. +
,
是输入,但是由于我们从/dev/null
那里没有管道,因此将0压入堆栈。+
带有n >= 5
空格的A 按下n-5
,因此下一条指令按下2。..
然后以相反的顺序输出这两位。
接下来,我们有一个+
带有单个前导空格的重复项。但是,堆栈为空,因此我们会出错。
与裂变有关的唯一部分是
*"12"L
L
产生一个向左移动的原子,"21"
打印21并*
停止。
引入的限制:.
在第一个之前没有[
这需要一个解释器,该解释器在EOF上给出0,并具有8位单元。相关代码是
,+-[>.>.-+.>,>]-[>+<-----]>-..
初始值-
是要偏移+
,并且[...]
由于单元格为0而不会执行第一个。下面的命令-[>+<-----]>-
将单元格设置为的char码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
然后用表示替换的结束::=
。然后将lone f
in 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
使用两个字母的名称声明一个字符串变量,因为一个字母的名称似乎失败了。第二行将此字符串设置为"30"
,由X
第三行中的(“检查”)输出。
2.7.1
来2.7.n
。(实际上,sweerpotato仅在主要版本中做到这一点。)