タグ

ブックマーク / text.baldanders.info (1)

  • 再帰呼び出しと関数テーブル

    今回は再帰呼び出しの話。 再帰呼び出しのサンプルとして典型的なのはフィボナッチ数かな。 フィボナッチ数の定義を愚直にコードにするとこんな感じになる。 package main import "fmt" func fibonacciNumber(n int) int { switch n { case 0: return 0 case 1: return 1 default: return fibonacciNumber(n-2) + fibonacciNumber(n-1) } } func main() { fmt.Println(fibonacciNumber(40)) } 一般に手続き型言語は再帰呼び出しに弱いと言われている(関数型のほうが有利)。 特に Go 言語の場合は goroutine に最適化を割り振っている関係で,関数呼び出しやその戻り1 のパフォーマンスが冷遇されている

    再帰呼び出しと関数テーブル
    syo-sa19820615
    syo-sa19820615 2016/12/28
    “特に Go 言語の場合は goroutine に最適化を割り振っている関係で,関数呼び出しやその戻り1 のパフォーマンスが冷遇されているようだ”
  • 1