“ Hello World!”的演变


226

该竞赛正式结束,获胜者是jimmy23013。恭喜你!

面临的挑战是制作一个可以打印Hello World!到标准输出的程序。值得注意的是,在您提交的答案中,您的程序与程序之间的Levenshtein距离必须为7或更小。

这将如何工作

下面,我已经使用Python提交了第一个答案:print("Hello World!")

下一位要回答的人必须print("Hello World!")使用最多7个单字符插入,删除或替换来修改字符串,以便以迄今尚未使用的任何语言(在这种情况下仅使用Python)运行该字符串时,输出仍然是Hello World!

例如第二回答者可以使用1个取代(r -> u),2个缺失(in),和1个插入(s),以使串puts("Hello World!")它打印Hello World!在红宝石运行时。

回答的第三人必须用一种新语言做同样的事情,但要以第二人的回答程序(例如puts("Hello World!"))为出发点。第四个答案与第三个答案有关,依此类推。

这将一直持续到所有人陷入困境,因为没有新语言时,只需更改7个字符就可以运行最后一个答案的程序。共同的目标是看我们能保持多长时间,因此,请不要进行任何晦涩或不必要的字符编辑(但这不是必需的)。

格式化

请按以下格式设置您的信息:

#Answer N - [language]

    [code]

[notes, explanation, observations, whatever]

其中N是答案编号(递增,N = 1、2、3,...)。

您不必知道更改了哪些确切字符。只要确保Levenshtein距离是0到7。

规则

了解这一挑战的关键在于,一次只能一个人回答,每个答案取决于之前的回答

永远不会有两个答案使用相同的N。如果两个人碰巧同时回答某个N,则稍后回答的那个人(即使相差几秒钟)也应该宽容地删除他们的答案。

此外...

  • 用户每8小时只能提交一个答案。即每个答案必须至少相隔8个小时。(这是为了防止用户不断观察问题并尽可能回答。)
  • 用户不能连续提交两个答案。(例如,由于我提交了答案1,所以我不能回答2,但是我可以回答3。)
  • 每个答案必须使用不同的编程语言。
    • 同一语言的不同版本计为同一语言。
    • 如果传统上使用两种不同的名称来称呼语言,则它们被视为不同的语言。(此处可能会有一些歧义,但不要让那毁了比赛。)
  • 您只能使用制表符,换行符和可打印的ASCII。(换行符视为一个字符。)
  • 输出应为Hello World!且不得包含其他字符(前导/后跟换行符不成问题)。
  • 如果您的语言没有标准输出,请使用通常用于快速输出文本的任何内容(例如,console.logalert在JavaScript中)。

请确保您的答案有效。我们不想意识到有五个答案会中断。无效的答案应迅速解决,或者在有其他答案之前将其删除。

除非绝对必要,否则不要编辑答案。

计分

一旦事情解决,提交最多(有效)答案的用户将获胜。领带最多的累积投票给用户。

页首横幅:(已过时)

(用户必须至少有2个有效答案)

11个回答

7个答案

6个答案

5个答案

4个答案

3个答案

2个答案

到目前为止使用的语言:

  1. 蟒蛇
  2. 贾姆
  3. 的PHP
  4. 腐霉菌
  5. 佩尔
  6. Befunge 98
  7. 重击
  8. 尼姆罗德
  9. 红宝石
  10. GNU直流
  11. 高尔夫脚本
  12. Mathematica
  13. [R
  14. a
  15. 智者
  16. 朱莉亚
  17. 科学实验室
  18. 的JavaScript
  19. 甚高密度脂蛋白
  20. 超级对话
  21. 哈斯克尔
  22. 大声笑
  23. 杀伤人员地雷
  24. M30W
  25. 斯塔塔
  26. TI-BASIC(NSpire)
  27. 动作脚本2
  28. Ĵ
  29. 电源外壳
  30. ķ
  31. 视觉FoxPro
  32. VBA
  33. III型高炉
  34. sh
  35. 短跑
  36. Clojure
  37. NetLogo
  38. Groovy
  39. CoffeeScript
  40. 快船队
  41. 基本知识
  42. 鱼(壳)
  43. GNU八度
  44. TCL
  45. Ë
  46. newLisp
  47. Lisp
  48. SMT-LIBv2
  49. 球拍
  50. 巴特什
  51. tcsh
  52. 苹果脚本
  53. 老鼠
  54. 小精灵
  55. F#
  56. 滑稽的
  57. 的HTML
  58. SGML
  59. M4
  60. 腮腺炎
  61. TeX
  62. 向前
  63. 三文鱼
  64. 图灵
  65. 公元前
  66. 更好的
  67. 方案
  68. 埃马克斯·利斯普(Emacs Lisp)
  69. 商标
  70. AutoLISP
  71. ///
  72. Rebol
  73. FreeBASIC的
  74. Vimscript
  75. sh
  76. 哈克
  77. IRC
  78. 批量
  79. 使
  80. 降价促销
  81. SH
  82. 广东发展银行
  83. csh
  84. HQ9 +-
  85. 后记
  86. Matlab的
  87. 奥兹
  88. 卡西欧基础
  89. VB脚本
  90. QBasic
  91. 处理中
  92. C
  93. 锈0.13
  94. 咖啡因
  95. 藻类
  96. 安培
  97. 亚罗
  98. 福布
  99. T-SQL
  100. LiveCode
  101. 欣快感
  102. 轻松说话
  103. MediaWiki
  104. SmallBASIC
  105. 雷克斯
  106. SQLite的
  107. TPP
  108. Geom ++
  109. SQL(postgres)
  110. Itflabtijtslwi
  111. RegXy
  112. 蛋白石
  113. 松鼠
  114. 典当
  115. 斯卡拉
  116. 雷布姆
  117. o
  118. PARI / GP
  119. 红色
  120. 迅速
  121. 豆壳
  122. 瓦拉
  123. 派克
  124. e堂
  125. AWK
  126. 猫子
  127. 天使脚本
  128. su
  129. V
  130. 阿拉古夫
  131. 虚假的
  132. 火红的雷声
  133. 缓存对象脚本
  134. 猫头鹰
  135. 红衣主教
  136. 解析器
  137. 咧嘴笑
  138. 小猫
  139. 两只鸭子
  140. 渐近线
  141. IDL
  142. WTFZOMFG
  143. o
  144. MuPAD
  145. 爪哇
  146. y玛瑙
  147. 老板
  148. S +
  149. x
  150. ash
  151. 不可能的
  152. 唤醒
  153. 小子
  154. busybox内置外壳
  155. γ复合体
  156. 海龟
  157. AGOL 68
  158. 爱丽丝
  159. SML /新泽西州
  160. OCaml
  161. 光盘
  162. 欠载
  163. 单纯形v.0.6
  164. Minkolang 0.9
  165. Fexl 7.0.3
  166. 乔尔夫
  167. 维蒂
  168. ÿ
  169. 视网膜
  170. 代号龙
  171. 认真地
  172. eng v.3.3
  173. 模糊章鱼鳄梨酱

(如果这些列表不正确或已过时,请随意进行编辑。)

按最旧的排序时,此问题最有效

注意:这是针对新挑战类型的试验性问题,我想每个答案都取决于最后一个答案并增加了难度。请在聊天室中与我们讨论此问题或在meta中进行讨论


61
“按最旧的排序”在这里很有用。
xnor 2014年


5
@Mew HQ9 +打印错误消息。但是,这个... esolangs.org/wiki/Huby
Sp3000

17
也许这可能很有趣:migl.io/projects/hw。此列表自动回答并显示其寿命
Michael M.

6
@gerrit因为我真的可以再使用350个答案通知...
卡尔文的爱好

Answers:


29

答案85- GDB(GNU调试器)

#[]([.]c;main()&alert"  "
    echo Hello World!
#[;]:;#bye;dnl</vsh>

我认为这也可以被视为一种编程语言。它具有偶数ifwhile命令

echo 是GDB中的另一个内置命令。

要运行此代码:

gdb --batch -x file

距离:距答案84的 7 。


请修改您的答案,因为85是无效答案(我以前没有注意到该语言已被使用),因此我将其删除。
2014年

任何与GDB的链接?
优化器

1
@Optimizer gnu.org/software/gdb Gnu调试器。
jimmy23013

这就像在Eclipse中运行Java项目,而不是Netbeans的
优化

3
这个答案很好。GDB有一种用于执行特定调试命令的命令语言。这是通过以批处理模式运行GDB并使用指定命令文件来完成的--batch -x <file>。这是一种合法的语言。参见此处:sourceware.org/gdb/onlinedocs/gdb/Mode-Options.html-batch flag

50

答案1-Python

print("Hello World!")

可以将多种语言转换成多种语言。


113
为什么要对此进行投票,但不是问题呢?我向你保证,这个问题更难写;)
卡尔文的爱好2014年

91
为什么您的评论比您的答案更受好评?
tomsmeding 2014年

23
@ Calvin'sHobbies答案投票的价值更高,你不应该抱怨:-)
Angew

30
@tom为什么您的评论比这个答案更受好评?
nicael 2014年

24
^他们都感到遗憾的是,没有任何评论被授予评论!
Optimizer

46

答案59-HTML

什么?没有HTML ??

<echo o[.]c;cat<<;#&&alert" ">Hello World!</vsh

答案的距离58:6

巫毒魔术师?没事 下面是它的工作原理:

您可以在HTML中使用任意标签,因此第一部分<echo o[.]c;cat<<;#&&alert" ">echo标签,现在变成空白标签,浏览器默认不应用CSS。

o[.]c;cat<<;#&&alert" "部分实际上是在该标签上设置的两个属性,以空格分隔。因此,第一个属性具有键o[.]c;cat<<;#&&alert",第二个键是"并且两个值均为空白。

第二部分只是纯文本Hello World!,即纯文本echo标签。

接下来,HTML尝试查找结束echo标记,但相反,找到结束vsh标记。然后,它将忽略关闭vsh标签(即</vsh)并自动关闭echo标签。


2
@MAKZ HTML非常自由和宽松。您可以有无与伦比的开头结束标记,而其他却没有。XHTML非常严格。w3schools是一个很好的起点。
Optimizer

3
您可以在HTML中使用任何标签,因此echo是常规标签。o[.]c;cat<<;#&&alert"是该标签上"的一个属性,最后一个是该标签上的另一个属性。您也可以使用Inspector开发人员工具查看此内容。
Optimizer

3
漂亮当当聪明。从来没有想过。
RubberDuck

15
我认为这是当您在凌晨3点阅读peyote时阅读标准文档时发生的情况。
戴维·康拉德

5
@Optimizer 推荐w3schools的人必读。;)
Martin Ender 2014年

39

答案95-C

//[]([.]c;
main()    {
    puts("Hello World!");}
//#[;]#bye;dnl</>

距离答案94的距离7


39
终于血腥了。
Nit 2014年

@Optimizer我在计算机上使用gcc 4.7.2时没有出现任何运行时错误。
archaephyrryx 2014年

1
@Emil Just vim自动缩进;OP呼吁对此进行处理(如果修复进展太快,您可以假装它是一个制表符,并使距离为7)
archaephyrryx 2014年

1
@ user23013因为该程序未指定int作为的返回类型,main并且实际上未返回退出代码;因此,返回码在技术上是未定义的行为,因此是
13。– Qix

1
一些以前的答案(85 GDB开始)做额外的工作来为C.准备
kernigh

29

答案22-LOLCODE

VISIBLE "Hello World!"

距离:6


看起来距离我6:删除put-> VItr-> IBn->E
isaacg 2014年

1
谢谢。我想我在计算距离时复制了不同的代码。
零食

28

答案151-Java

//#
class jux{public static void main(String[] h){System.out.println(//;\#//Hello*}}print,
"Hello World!");}}//print"putsx;//-##[;]#bye</>%"

距离答案150的距离:7

在这里尝试

(感谢Christopher Creutzig这样的运动:)


3
现在为C#答案!
rodolphito




21

答案83-降价

什么 ??没有降价?:P

[](#[.]c;cat;#&&alert"  "
    @echo)Hello World!
[;]:;#bye;dnl</vsh>

在这里尝试

距离答案82:7

e   -> [
:   -> ]
\n  -> (
o H -> o)H
:   -> [
#   -> ]
"   -> :

巫毒魔法?不!下面是它的工作原理:

  • [text](link) 创建一个链接。

所以代码的第一部分是

[](#[.]c;cat;#&&alert"  "
        @echo)

这将创建一个带有位置的空文本链接

#[.]c;cat;#&&alert"  "
     @echo
  • 下一部分Hello World!原样打印

  • 然后[;]:;#bye;dnl</vsh>创建一个引用链接;,可在降价中的任何地方使用该链接。

例如:

[Some text][;] // Outputs a link with text "Some text" and url ";#bye;dnl</vsh>"

1
这是否是一种编程语言就越来越令人怀疑。(实际上与HTML相同。)
Martin Ender 2014年

1
好吧,如果HTML是一种语言,那么Markdown也是。JS和Closure之间的关系相同。同样,鉴于这一挑战(每年1 lang),应放宽这些规则。
Optimizer

1
正如我所说,按照我们的标准,我也不认为HTML是一种编程语言。但是出于此特定挑战的目的,放宽这些规则可能很好(但理想情况下,卡尔文的业余爱好应该指出这一点)。
Martin Ender 2014年

4
我们可以在其他地方而不是在我的答案上进行讨论吗?:)
Optimizer

2
仍然令人印象深刻
Fabinout 2014年


18

答案12-Mathematica

#[puts];
"Hello World!"

距离为7。试图清除一些混乱。



15

答案19-VHDL

report "Hello World!";

距离:6


1
哇:) ........强吧?
MAKZ 2014年

3
哈哈,我一直在等待一个允许我使用HDL的代码高尔夫问题:p

15

答案6-Befunge 98

<@,kb"Hello World!"

上一个答案的距离为5 。最初有一个错误,那里k没有。我知道我写这个程序的时候就在那里。我想它只是没有进入这篇文章。


我应该夸大它,但是哦。
贾斯汀

我只是基于充气版本发布答案7
jimmy23013

6
@Quincunx我无法想象我们能够站起来System.out.println...
Sp3000

4
@ Sp3000我们首先可以在注释中编写Java程序。然后将其他所有内容变为注释。
jimmy23013 2014年

4
我曾考虑过让每个答案有多个答案,这样它就可以像一棵树一样分支出来。然后你们可以继续进行Java小切线。但是那太令人困惑了……
卡尔文的爱好

14

答案23-APL

 "Hello World!"

请注意,这里有一个领导空间。
距离:7


2
W必须大写打印的“Hello World!”。

13

答案3 – PHP

<?="Hello World!"?>

该答案与第二个答案的距离为5 。


请注意,字符串"Hello World!"verbatim显然与答案2的距离为0,它是一个有效的PHP程序,输出所需的字符串,并且不需要显式的print语句。
hijarian 2014年

@hijarian:这仅适用于PHP shell,这使其对于此挑战无效。
丹尼斯

1
@Dennis如果您编写了一个脚本helloworld.php,并Hello World!在其中放置了12个符号,然后使用来运行此脚本php helloworld.php,您将被Hello World!打印到stdout,因为PHP将<?php ?>处理指令之外的所有内容都视为要输出的原始文本。
hijarian 2014年

我已经意识到,您需要删除引号(使其成为Levenstein距离2)才能完全兼容。
hijarian 2014年

4
@Petah那么?这不是代码高尔夫球。我们不应该使它尽可能短或尽可能容易地继续。
PurkkaKoodari 2014年

13

答案28-J

]trace=:('Hello World!')

答案27的距离= 5


1
]+ =+ :+ '+ '= 5,是吗?

3
当然。错过了它的快速性...这种类型的问题肯定会给代码挑战:P添加实时感。
jpjacobs 2014年

一种名称如此简单的语言的最奇怪的表示法之一……
CoDEmanX 2014年

J可能是答案2,方法是删除印刷品,并用单引号将双精度替换为,最后以('Hello World!')
bcsb1001 2014年

13

答案33- 高炉BF III型

a#="*#[.>]trac": "@Hello World!

距离7 答案32的

好吧,我还没有找到该扩展程序的解释器,但是代码似乎符合该语言的规范。

a //ignored
#="*# //comment
[.>] //print each character until an empty cell
trac" //ignored
: //move pointer, do not impact result
 " //ignored
@ //end of source
Hello World! //Injected in cells before execution

1
请注意,上面的答案是无效的,因为它的距离为8。但是应该可以通过删除一些空格来解决,因此您可能要在其他人解决之后再进行修复。
Scimonster 2014年

1
已更正。我很抱歉。
RubberDuck

1
我的答案也是固定的。
Michael M.

1
我为此排队了一个整齐的人,等不及要等待8个小时的计时器了。
Nit 2014年



12

答案14-卢阿

#[put
print("Hello World!")

距离= 7


8
Aaand,我们重新开始,做得好。
Nit

嗨,@ Timmy,对不起,但我不得不将答案从印刷版改为猫版。
Mark Gabriel

12

答案21-哈斯克尔

putStrLn "Hello World!"

距离:7


4
我是唯一认为Haskell版本print比LOLCODE 版本晚的人吗?
法拉普2014年

5
@Pharap:Haskell的版本print称为print,它执行的操作相当不灵活:打印一些值,可以是任何¹类型-但使用有效的Haskell表示法!因此,print 5产量5作为产出,也就是print "Hello World!"产量"Hello World!";但要求的挑战是Hello World,且不带引号(这不是有效的Haskell)。
停止了逆时针旋转

3
@Pharap¹它实际上不适用于任何类型,仅适用于有Show能力的类型。
停止了逆时针转动

1
@leftaroundabout好吧,我想是suum cuique pulchrum
法拉普2014年

@ceasedtoturncounterclockwisdata W=World;data H=Hello W; Hello World
Esolanging Fruit

12

答案26-TI-BASIC(NSpire)

Disp "Hello World!"

距离:距答案25的 5分

(在TI-NSpire计算器上测试)


2
我看到您有一个NSpire计算器;标题中应注明TI-83 / 84 / + / SE没有小写字母。
Timtech,2014年

2
@Timtech他们实际上确实有小写字母。如果您拥有MirageOS或其他自定义操作系统,则可以启用它们。这是我前一段时间编写的使用小写字母的程序的屏幕截图
wchargin 2014年


11

答案7-重击

echo Hello World!

第六个答案的距离是7 。


1
零距离的la脚距离将是Batch ....快速@RandomUserViewingThisComment,快来发布吧!
贾斯汀

@Quincunx与@字符的距离1 。
jimmy23013 2014年

@ user23013好点;我不太了解Batch...。但是它可以在命令行中使用。
贾斯汀

@Quincunx否则它将\nX:\Your\Working\Directory>echo Hello World!\nHello World!以脚本打印。或者我应该是说\r\n\n
jimmy23013 2014年

@ user23013哦,这很有道理。
贾斯汀

11

答案29-MS Windows Powershell

#]trace=:(
'Hello World!'

与答案28的距离= 3


3
其实,我很喜欢朋克
发型的

2
从这一点开始,答案就堆积为垃圾(通常被注释掉了)。答案85(GDB)添加了“ main”,答案最终到达C,然后到达Java。
kernigh

11

答案42-

{#ah="*#[.>]trac";cat<<@
#&&alert 
?} "Hello World!
"

距离#41的莱文施泰因距离为7。此在线实施 FALSE经过测试。我使用了一些剩余的编辑距离插槽来移除一些杂物...


我本该为自己做些残酷的清洁工作,但现在不能了。我会断链的。
TecBrat 2014年

3
随机答应为答案42-答案为假:P
CoDEmanX 2014年


10

答案30-K

/#]trac
"Hello World!"

距离:距离答案29的 7

我认为这有效,翻译在这里(Kona)/在K中开始单行注释。我已经清理了一些#]trace=:(混乱的地方。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.