具体到编程世界,“海龟一路走下去”是什么意思?

时间:2012-08-18 20:53:28

标签: idioms phrase

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

谢谢你!

4 个答案:

答案 0 :(得分:11)

这个表达式的一个用法是指一种编程风格,其中存在非常深的调用堆栈。您可能会看到一个名为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地球。乌龟站在什么地方?另一只乌龟......等等。

答案 1 :(得分:3)

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

Smalltalk和Lisp以这种方式而闻名。

答案 2 :(得分:1)

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

答案 3 :(得分:1)

它有时被用来指纯粹的'面向对象(或功能)语言。在a.o. java,c#,c ++,Objective c和Delphi,有些本机类型(int)不像对象那样。 Smalltalk的幻觉保持得更好。