“发射导弹”的由来是啥?
Posted
技术标签:
【中文标题】“发射导弹”的由来是啥?【英文标题】:What is the origin of "launch the missiles"?“发射导弹”的由来是什么? 【发布时间】:2011-02-15 21:52:08 【问题描述】:在函数式编程的上下文中,副作用的典型示例是“发射导弹”。从历史上看,这种说法是从哪里来的?
【问题讨论】:
我不知道那个成语(在那种情况下),但在我的辩护中,谷歌似乎也不知道。我发现它是“系统外”发生的事情的一个很好的例子,系统是定义它们之间关系的变量和函数。我不会在其中读到负面的任何负面含义。 这个问题已经在谷歌上“编程发射导弹”的热门话题。 endofworld.net .... ZE 导弹!!! 【参考方案1】:我没有证据证明这一点,但我一直认为它来自一段类似的错误 C 代码:
if (hasSecurityClearance = true)
launchMissiles();
【讨论】:
【参考方案2】:“Launch the Missiles”在事务性内存中用于强调 I/O 是不可撤销的。一旦导弹发射(即发送网络数据包),它就在途中并且无法被召回。对于交易,这意味着您不能再中止。相反,既然您已经发布了结果 (BOOM),您必须找到完成的方法。
事务性内存于 1993 年首次提出,远在 Wargames 发布并不再酷炫之后。 2006 TM paper from Simon Peyton-Jones(第 2 页)是我第一个找到“发射导弹”类比的地方。这可能是起源吗?
【讨论】:
【参考方案3】:我在回滚数据库事务的上下文中听说过它,作为一个无法撤消的操作的示例:“很难取消发射导弹。”
【讨论】:
【参考方案4】:确实有一些软件应用程序确实可以管理洲际弹道导弹的发射,因此必须有一些项目的风险评估必须涵盖意外触发核毁灭。然而,这句话似乎并不是指真实的事件。当然,如果真的发生了这样的事情,你可以打赌黑色直升机很聪明地压制了它的所有痕迹。
无论如何,我认为这只是对“可能发生的最坏情况是什么?”这个问题的双曲线回答。起源可能来自the film 'Wargames' 之类的东西,其中人工智能几乎开始了一场核战争,因为它认为自己在玩游戏。
我想另一件事是,这并不是真正的副作用。导弹发射控制程序应该发射导弹;只是,他们应该只在进行所有必要的检查后才启动它们。所以这是为了确保我们在完成第 1 步:唤醒总统,第 2 步:检查目标坐标之前不会进入第 10 步:发射导弹强>等
【讨论】:
我猜@FredOverflow 已经知道它的含义了。【参考方案5】:历史上“发射导弹”从何而来?
祝你好运——这更像是一个研究问题,而不是编程问题。
这里有两个数据点:
我至少在十年前就听说过 Simon Peyton Jones 在谈话中使用了这个确切的短语作为例子。
在 1990 年代初期,甚至可能是在 1990 年,Computer Professionals for Social Responsibility 制作的 T 恤上印有原子爆炸的图片和文字传说
最终的错误信息
我敢打赌这句话至少可以追溯到那么远。
要获得真正的答案,您需要词典编纂者,而不是程序员。
【讨论】:
以上是关于“发射导弹”的由来是啥?的主要内容,如果未能解决你的问题,请参考以下文章