Scala をちょっと勉強し始めたので,フィボナッチ数列のリストを作成する関数を作成してみました。
(追記:コメント欄が結構もりあがったので,あわせてご覧ください)
次の関数は引数で与えた数値をこえない数列を作成します。
def fib (l: Int) = {
var list = List[Int]()
var a = 0
var b = 1
while (b < l) {
list :+= b
val c = a
a = b
b = c + b
}
list
}
REPL でも十分打ち込める量だと思います。
REPL なら次のような感じで実行まで持って行けます。
scala> def fib (l: Int) = {
| var list = List[Int]()
| var a = 0
| var b = 1
| while (b < l) {
| list :+= b
| val c = a
| a = b
| b = c + b
| }
| list
| }
fib: (n: Int)List[Int]
scala> fib (100)
res1: List[Int] = List(1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89)
余談ですが,仕事では Java や Swift をよく使っているので, Scala を使うことはあまりないのですが,たまに別の言語を触ってみると良い刺激になりますね。