開発環境
- OS X Yosemite - Apple (OS)
- Emacs (Text Editor)
- Scala (プログラミング言語)
Learning Scala: Practical Functional Programming for the JVM (Jason Swartz (著)、O'Reilly Media)のPart Ⅰ. (Core Scala)、Chapter 4.(Functions)、Exercises 5.(No. 1471)を解いてみる。
その他参考書籍
Exercises 5.(No. 1471)
コード(Emacs)
def pow1(a:Double, b:Double): Double = math.pow(a, b)
def pow2(a:Double, b:Int): Double = {
if (b == 0) 1
else a * pow2(a, b - 1)
}
def pow3(a:Double, b:Int): Double = {
@annotation.tailrec
def inner(n:Int, result:Double):Double = {
if (n == 0) result
else inner(n - 1, result * a)
}
inner(b, 1)
}
def pow4(a:Double, b:Int): Double = {
var result: Double = 1
for (i <- 1 to b) {
result *= a
}
result
}
println(pow1(2, 10))
println(pow2(2, 10))
println(pow3(2, 10))
println(pow4(2, 10))
入出力結果(Terminal, REPL(Read, Eval, Print, Loop))
$ scala-2.11 sample5.scala 1024.0 1024.0 1024.0 1024.0 $
0 コメント:
コメントを投稿