タグ

関連タグで絞り込む (1)

タグの絞り込みを解除

schemeとoptimizationに関するnfunatoのブックマーク (1)

  • トランポリンによる末尾呼び出しな apply - Qiita

    末尾呼び出し最適化 プログラミング言語 Scheme の処理系は末尾呼び出し最適化が必須です. たとえば,リストを逆転する手続き rev を次のように定義すると,else 節の再帰呼び出しはスタックを消費しません.ラフにいえば call が jump に変換されるからです.call して戻ってきてもリターンするしか仕事が残っていないので,呼び出し先から直接呼出し元に戻れば済みます. 以後,単に「末尾呼び出し」と書くだけで,最適化された呼び出しのことを意味するものとします. (define (rev xs ys) (if (null? xs) ys (rev (cdr xs) (cons (car xs) ys))))

    トランポリンによる末尾呼び出しな apply - Qiita
  • 1