2015年11月25日水曜日

開発環境

  • OS X El Capitan - Apple (OS)
  • Emacs (Text Editor)
  • Scala (プログラミング言語)

Learning Scala: Practical Functional Programming for the JVM (Jason Swartz (著)、O'Reilly Media)のPart Ⅰ. (Core Scala)、Chapter 7.(More Collections)、Exercises 1-b.(No. 3180)を解いてみる。

その他参考書籍

Exercises 1-b.(No. 3180)

コード(Emacs)

def fibonacci(x : Int): List[Int] = {
  x match {
    case 0  => List(0)
    case 1 => List(0, 1)
    case _ => {
      val buffer = List(0, 1).toBuffer
      while (buffer.size < x) buffer += buffer.takeRight(2).sum
      buffer.toList
    }
  }
}

def fibonacciAdd(nums: List[Int], count: Int): List[Int] = {
  val buffer = nums.toBuffer
  for (x <- 1 to count) buffer += buffer.takeRight(2).sum
  buffer.toList
}

val nums = fibonacci(5)

println(nums)

val num2 = fibonacciAdd(nums, 15)

println(nums)
println(num2)

入出力結果(Terminal, REPL(Read, Eval, Print, Loop))

$ scala-2.11 sample1_b.scala
List(0, 1, 1, 2, 3)
List(0, 1, 1, 2, 3)
List(0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597, 2584, 4181)
$

0 コメント:

コメントを投稿