*Scala解答例 [#p9ba346f] [[練習問題]] 解答例は次の環境でテストしています -Scala 2.10.2 -Java 1.7.0_21 32bit ほとんどの解答例は[[ideone.com:http://ideone.com/]]でそのまま実行できます **[[ループ練習>練習問題#eb2c4338]] [#s1c6b422] ***問1 [#ke7969de] object Main extends App { for (i <- 1 to 5) { println("Hello World!") } } 別解 object Main extends App { (1 to 5) foreach { _ => println("Hello World!") } } ***問2 [#ybb0b896] object Main extends App { val j = args(0).toInt for (i <- 1 to j) { println("Hello World! " + i) } } 別解 object Main extends App { val j = args(0).toInt (1 to j) foreach { i => println("Hello World! " + i) } } **[[FizzBuzz>練習問題#t52e5a48]] [#ga808233] object Main extends App { def fizzBuzz(n: Int) = if (n % 15 == 0) { "FizzBuzz" } else if (n % 5 == 0) { "Buzz" } else if (n % 3 == 0) { "Fizz" } else { n.toString } (1 to 100).map(fizzBuzz).foreach(println) } **[[素数判定>練習問題#o8db2119]] [#ldc71efe] ***判定 [#v8e35b34] object Main extends App { def prime(n: Int) = 2 <= n && !(2 until (math.sqrt(n) + 1.0).toInt).exists(n % _ == 0) val n = args(0).toInt println(n.toString + "は" + (if (prime(n)) "素数" else "非素数")) } ***列挙 [#j53b2078] object Main extends App { def primes(xs: Stream[Int] = Stream.from(2)): Stream[Int] = xs.head #:: primes(xs.tail.filter(_ % xs.head != 0)) primes() takeWhile { _ <= 100 } foreach { println } } **[[うるう年測定>練習問題#i0d67516]] [#xd158eb1] import java.util.GregorianCalendar object Main extends App { val cal = new GregorianCalendar() while (true) { print("西暦を入力してください> ") val y = readInt() if (y <= 0) sys.exit() printf("%dはうるう年%s\n", y, if (cal.isLeapYear(y)) "です" else "ではありません") } }