前段时间,有人问了以下问题:GolfScript,CJam或Pyth? 仅基于标题,我认为这将是一个非常好的挑战,但不幸的是,事实证明这是一个要求提示的问题。这是我想阅读的挑战:
谁说高尔夫语言在现实世界中没有使用?众所周知,独立于所使用的编程语言,每行代码的错误比率是相同的,因此,存在明显的机会来减少使用这些语言的调试和维护成本。最终,您的公司看到了曙光,并决定使用Golfscript,CJam和Pyth来开发其产品。
不幸的是,几个月后,您的硬盘上到处都是代码片断,甚至您都不知道用哪种语言编写了哪些代码(您甚至怀疑某些使用Perl的程序员)。
您必须编写一个工具来检测编写程序所用的语言是CJam,Golfscript或Pyth。情况很危急,您可以使用所需的任何语言,但请保持简短(数据存储非常昂贵:我们使用的字节越多,成本就越高)。
一般
- 最短代码赢
- 标准漏洞等
- 不要使用在线口译员
- 您可以编写函数或程序
- 您可以使用eval来检测自己的语言
输入项
- 您的输入来自标准输入流或字符串
- 输入仅包含ASCII可打印字符和换行符
- 输入的大小最大为256个字节
输出量
- 输出被打印到输出流或作为字符串/符号序列返回
如果输入的是无疑是一个有效的X程序,打印或返回X,X ∈{CJam,Pyth,Golfscript}
备注:“毫无疑问”并不意味着您可以使用始终无法检测到任何语言的愚蠢分析器进行回答。对于Pyth,我希望可以识别简单程序(但不能进行硬编码)。这同样适用于CJam(备忘单,实施例)和Golfscript(实施例)。前面的链接指向每种语言的规范。如果使用模糊/贝叶斯方法,则“毫无疑问”意味着具有很高的置信度(例如,您的分类得分为99%)。 请参阅下面的实际测试套件。
如果输入使用多种语言有效,则应打印/返回每种检测到的语言。打印时,多个输出之间必须有分隔符(例如,空格,换行符,逗号...)。
- 语言尝试的顺序无关紧要
- 我不关心大小写(CJam,cjam,CJAM,SPAM)[1]
- 如果未检测到以上任何一种语言,则打印“
Probably Perl
”。多亏了mbomb007的注释,在上述情况下,您还可以输出“Seriously
”,罚金为4个字节(两个字符串之间的差)。
[1]请注意,垃圾邮件无效
例子
-
"Crime predicted: -- Calling: 1--555- "30*{_5<{iAa*:mr}&}/
输出(多个返回值的示例)
["Golfscript", "Cjam"]
输入项
3
输出(标准输出示例)
golfscript cjam pyth
输入项
if {} aazd
输出量
Probably Perl
在最后一种情况下,输入程序在 所有 三个在线解释器中均产生错误。
得分,获胜标准
最短的代码获胜。如果输出“ Seriously”,则添加4个字节。然后,应用奖金。
测试失败
以下是不能被识别为以上三种语言中的任何一种的摘录。
一线(即每行一个条目)$^X=~/([a-z]+)[^\/]+$/;print$1,$/
<>;map($s-=(-1)**$_/(2*$_-1),1..$_),$s=!print$s,$/for<>
((THIS IS LISP HAIKU) (TRULY THIS IS LISP HAIKU) (THIS IS LISP HAIKU))
(format t"~@(~{~R~^, ~}~).~%~:*~@(~{~:R~^, ~}~)."(loop for i to 99 collect(1+ i)))
print sum(ord(c) for c in 'Happy new year to you!')
脑干
>++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.
++++++++++++++++++++++++++++++++++++++++++++++++.
-----------------.
++++++++.
+++++.
--------.
+++++++++++++++.
------------------.
++++++++.
佩尔
@list=( "aaaa",
"aaaaaaaa",
"aaaaaaaaaaaaaaa",
"aaaaaaaaaaaaaaaa",
"aaaaaaaaaaaaaaaaaaaaaaa",
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa");
while (@list) {
for($i=0;$i<6;$i++){
print length($list[$i])." ";
}
print "\n";
}
鱼
#ifndef __linux
#include "x.h"
#define X/*\
a=1 set -e
+++++++++++++++++++++_+++++++++++++....Hello World!?:Q:
#endif
echo "Hello, World!"
int m(){}
基本测试套件
这些是必须通过的测试。初级讲座是单行为你的程序必须检测它正在编写语言每种语言(我没有检查其中哪些是多语种)。
腐霉菌
*2Q
FNrZTN
FNrZhTN
FNUhTN
VhTN
FNr1hQN
=N5N
K5K
K1FNr1hQ=K*KN
K1FNr1hQ=K*KNK
K1FNr1hQ=K*KN;K
DhZK*3ZRK
L?b*bytb1yQ
A(Z1)VQHA(H+HG
高尔夫脚本
;'2706 410'~{.@\%.}do;
;''6666,-2%{2+.2/@*\/10.3??2*+}*`50<~\;
'Hello, world!'
1 2 [\]
贾姆
"Hello, world"
{`"_~"}_~
"`_~"`_~
T1{_2$+}A*]`
{__'`>\'x>26*2-*-}/
Y38#
N/s:X,8-,{X>9<__{'a<},,\4%{'Z>},,*I={4=}{;}?}/
银奖:字节数* 0.6
之前的所有测试必须通过,而以下几条测试必须通过。所有这些摘录均摘自CodeGolf的实际答案。
腐霉菌
VzJ:zZhZpkJ~Zhy}rJ0-G"aeoui
Vzjdm?@zd}N,dt-lzd\ Uz
jd.iSQs*RtQ,\?":0
rsXOtQmO*-GJ"aeiou"J/Q2*%Q2O"hy"4
VhQIq`N_`NN
s["$$\\varphi=1+"*Q"\cfrac1{1+"\\<\dQ"dots"*Q\}"$$
@c"weak trick fair"d-!JlfhT-M.:us_cG.u+NYtKrH7-52hK.zU52 2>J26
高尔夫脚本
);:|;{0):0;|$:§-1%" - "§" = ""0"4$~§~-+-4>:|n|6174`=!}do"Iterations: "0"."
'-+,/'{)))))}%
4:echo(2+2);
#undef X;A!"$%&'()*+-[,.]/0123456789:<=>?@BCDEFGHIJKLMNOPQRSTUVWYZ\^_`abcghijklmopqrstvwxyz{|}~
{`),32>^.}.~
"126,32>''+".~\-'.~\-"'-
"),@`^^32>#.~".~
...[[]]{{}}&%%++++5i
*++..0011125::::;;;?bbbbcccc{}
"This program wasn't written in "o"GolfScript"", it was built for ""CJam"oo"!"
贾姆
"Q"c("ASSW"1$("aRD"(((T1
%\@_@){;_0}*__*)\15
"This program wasn't written in "o"GolfScript"", it was built for ""CJam"oo"!"
"P2"1e3K51_,1>K*$K*~]N*
li__,\mf:i2m1+:*/fb:+
ri:B__(^2/):G/,{_BBG/@-(#G@*G(B2/*+*}/]:+
{1$+S@]_1=4+1$`,-S*"2$~"}21D2$~
[S'-26*N]:Z[S'|:PS24*PN]:RR'(PS5*qi:XD=X0<-X2%2*+:Y[" ^ "_" > ""(O)"" - "__]=S8*Y[" ^ "" "" < ""(O)"" - "__]=S5*P')NRRXD=[SPS7*'oA*S7*PN]:QR?Y[[SPS5*'oSC*'oS5*PN]:T_R[SPS7*'oS8*'oS7*PN]RRR]=QY2=TR?RRZ
li4H#+2bW%32<2b
q~:R100:H*\d:T/i){R-H*HT-/m]}6*_H)<*
"JamesBdo,"YZ+/)BA*c+Y*Y%:BS@SB)))[JW:Z____)ci+*]U*
金牌奖金:前项得分* 0.8
腐霉菌
相比jdm@cd)._-FQcj"
is
equal greater less
to than
"Qb
雪人
M@GCHgc" ___
___
_"bhzgc" (_*_)
_===_
.....
/_\\"bhzs[g" \ "@z4\(g"-.oO"@z2g" ,._"@z1g"-.oO"@z3\)g" / "@z5)s[g" < /"@z4\(gc"
:
] [
> <"b@z6\)g" > \\"@z5)++" ("gc"
:
\" \"
___"bez\)
贾姆
大rri:Hri:Vri:Q[q~]3/_Qa3*a+_|$W%:Pf{\a#}:AH/:B0ff*
P,,[AHAW%HBz:+_W%V\V]2/
ff{~@@f=/::|1#}0Ua4*t:R;
P0f<
V{H{BI=J=_2$=
0R{"I>! I+V<J>! J+H<"4/+4/z{~~}%:&1$*\)}%);2$-|t
}fJ}fI
[P,{_La#\1$0t1$f-}*;;]
{:TR=2/~\~V\-,>\f{\_3$=@~H\-,>{Tt}/t}~}/
:~Pf=:~
~]S*N
雪人
q:Q;SS"
_===_,___
....., _
/_\,___
(_*_)"',/0{Q=~(=}:G~N" \ "4G'(".oO-"_2G",._ "1G@3G')" / "5GN"< / "4G'(" : ] [> < "3/6G')"> \ "5GNS'(" : \" \"___ "3/7G')
高尔夫脚本
洛普伊普森Lorem ipsum dolor sit amet, consectetur adipiscing elit. Cras imperdiet est ut sem commodo scelerisque. Sed ut ultricies enim. Nam eget lectus suscipit, gravida turpis a, volutpat tellus. Cras efficitur luctus neque, at semper massa condimentum at posuere.
数码时钟
:*{32' _':$@'14'{?~!=}:&~32}%n*{:x' |':|\'1237'&$x'017'&|x'56'&}%n*{:x|\'134579'&$x'147'&|x'2'&}%
生日快乐
4,{"Happy Birthday "["To You""Dear GolfScript"]@2==n}%
法雷序列
~:c[,{){.}c(*}%.c/zip{+}*]zip{~{.@\%.}do;1=},{~<},{~\10c?*\/}${'/'*}%', '*'F'c`+' = {0/1, '+\', 1/1}'