Scalaでフィボナッチ数列

久しぶりにScalaに触りたくなったので、先日Pythonで書いたフィボナッチ数列を出力するプログラムをScalaで書いてみよう。

object Fibonacci extends Application{
  var nums = Map(1->BigInt(1), 2->BigInt(1))
  def calc(i:Int): BigInt={
    if(!nums.contains(i)){
      nums += (i -> (calc(i-1) + calc(i-2)))
    }
    nums.apply(i)
  }
  for(i<-1 to 100){
    println("" + i + "\t" + calc(i))
  }
}

思ったこと

久しぶりに書いてみたけど、Scalaのプログラムは何をやってるのかがパッと見で全然わからない。