【问题标题】:Specific to the world of programming, what does "Turtles all the way down" mean? [closed]具体到编程世界,“海龟一路向下”是什么意思? [关闭]
【发布时间】:2012-08-14 20:52:16
【问题描述】:

我经常听到这句话,但并不完全理解它的含义。这是什么意思?如果可能的话,有没有例子?

谢谢!

【问题讨论】:

标签: idioms phrase


【解决方案1】:

它有时用于指代“纯”面向对象(或函数式)语言。在 a.o. java、c#、c++、Objective c 和 Delphi,有一些本机类型 (int) 的行为不像对象。在 Smalltalk 中,这种错觉保持得更好。

【讨论】:

  • 在 JavaScript/node.js 中
【解决方案2】:

这个表达式的一个用法是指一种调用堆栈非常深的编程风格。您可能会看到一个名为 Grobble 的方法并想知道它的作用,因此您打开定义并看到:

class FooHandler
{
    void Grobble(Foo foo)
    {
        foo.Grobble();
    }
}

那么你看看Foo.Grobble:

class Foo
{
    FooImpl _fooImpl;

    void Grobble()
    {
        _fooImpl.Grobble();
    }
}

你也可以FooImpl 看起来像这样:

class FooImpl
{
    void Grobble()
    {
        this.Grobble(false);
    }

    // etc...
}

代码越走越深,还是看不到尽头,任由你沮丧地惊呼“一路下来都是乌龟!”

指的是地球的metaphor 位于乌龟的背上。乌龟站在什么上面?另一只乌龟……等等。

【讨论】:

  • 如果你设法将一个延续传递给它自己,也许是字面意思。
  • 哎呀,知道这一点,知道我花了 2 年时间研究的遗留代码......我已经错过了至少 100 次惊叹这句话的机会!!!
【解决方案3】:

这通常是指自托管编程语言,其中解释器或编译器是用被解释/编译的相同语言编写的。它还可以引用以语言本身编写的语言的库。

Smalltalk 和 Lisp 以这种方式闻名。

【讨论】:

  • 在 Smalltalk 的上下文中,它也可以是对 Seymour Papert 的 LOGO 编程语言的引用,其中可以指示 LOGO 的 Turtle 移动并生成图形。在 Smalltalk 中看到各种图形对象,会惊呼:“没有像素 - 一直是海龟!”
【解决方案4】:

Turtles all way down 是一个有时用来指代无限递归的短语。例如,最小整数是多少?没有一个。 -2 小于 -1,-3 小于 -2,依此类推。没有底。引用的原始来源是对“如果世界在乌龟的背上,乌龟站在什么上?”这个问题的回答。无论如何,它没有我所知道的任何编程特定含义。

【讨论】:

    猜你喜欢
    • 2020-12-17
    • 1970-01-01
    • 2014-05-01
    • 1970-01-01
    • 2010-12-29
    • 2014-09-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多