読者です 読者をやめる 読者になる 読者になる

はわわーっ

はわわわわっ

scalaで階乗の計算

scala

最近scalaしたい感があったのでちょっとやってみた。
インストールは前やってたのでいろいろ動かしてみる。

scala> def fact(n: Int): Int = if (n == 0) 1 else n * fact(n - 1)
fact: (n: Int)Int

scala> fact(5)
res0: Int = 120

とりあえずこんな感じ。

ファイルに書いてあるものを読み込むときは

def fact(n: Int): Int = {
  if (n == 0) 1
  else n * fact(n - 1)
}

みたいなのを作っておいて

scala> :load fact.scala
Loading fact.scala...
fact: (n: Int)Int

scala> fact(5)
res0: Int = 120

こんな感じにロードする。

末尾再帰だと

def fact(n: Int): Int = {
  def fact1(n: Int, acc: Int): Int = {
    if (n == 0) acc
    else fact1(n - 1, n * acc)
  }
  fact1(n, 1)
}

みたいになる。