私はこのフレーズをよく耳にしますが、その意味を完全には理解していません。どういう意味ですか?可能であれば、例はありますか?
ありがとう!
この表現の 1 つの使用法は、非常に深い呼び出しスタックがあるプログラミング スタイルを指します。呼び出されたメソッドを見て、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...
}
コードをどんどん深く掘り下げた後も、まだ終わりが見えないので、「ずっとタートルズだ!」とイライラして叫ぶことができます。
参照は、地球がカメの背中にあるという比喩です。カメは何の上に立っていますか?別のカメ...など。
これは通常、インタープリターまたはコンパイラーがインタープリターまたはコンパイルされる言語と同じ言語で記述されている自己ホスト型プログラミング言語を指します。また、言語自体で記述されている言語のライブラリを参照することもできます。
Smalltalk と Lisp は、この種のことでよく知られています。
Turtles all the way down は、無限再帰を指すために時々使用されるフレーズです。たとえば、最小の整数は? 1つもありません。-2 は -1 未満、-3 は -2 未満などです。底はありません。引用元は、「世界が亀の背中にあるとしたら、亀は何の上に立っているのか?」という質問に対する答えでした。とにかく、私が知っているプログラミング固有の意味はありません。
「純粋な」オブジェクト指向 (または関数型) 言語を指すために使用されることがあります。ao java、c#、c++、Objective c、および Delphi には、オブジェクトのように動作しないネイティブ型 (int) があります。幻想は、Smalltalk の方がはるかによく維持されます。