以下の内容はhttps://higepon.hatenablog.com/entry/20070118/1169122349より取得しました。


継続マラソン - 継続の実装方法を考える4

arinoさんから質問を頂いた。

arino 『現在の実装では、関数の引数が別の関数呼び出しの結果になっている場合、どう処理されているのでしょう?
(func1 (func2))みたいな形。
Cの世界での再帰

(func1 (func2) (func3))


の場合は、内部的には

apply(func1, 配列[func2, func3])


のように apply に渡されます。(疑似コードです)
更に apply の先頭で

apply(procedure, arguments)
{
   foreach (argument) {
        argument->eval() // ここでfunc2, func3がそれぞれ呼ばれる
   }

という感じです。




以上の内容はhttps://higepon.hatenablog.com/entry/20070118/1169122349より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14