月曜日, 12月 14, 2015

scala - tailrecアノテーション

scalaではtailrecアノテーションを使って末尾再帰の最適化をすることができる.
関数は再起呼び出しで終わっている必要がある.
  @tailrec
  def fact(i:BigInt, accm:BigInt):BigInt = {
    i match {
      case _ if i == 1 => accm
      case _ => fact(i - 1, i * accm)
    }
  }

0 件のコメント: