数字の加算
数字の加算
lesson004.scala
import scala.io._ def toInt(in: String): Option[Int] = try { Some(Integer.parseInt(in.trim)) } catch { case e: NumberFormatException => None } def sum(in: Seq[String]) = { val ints = in.flatMap(s => toInt(s)) ints.foldLeft(0)((a, b) => a + b) } println("Enter some numbers and press ctr-Z") val input = Source.fromInputStream(System.in) val lines = input.getLines.collect println("Sum " + sum(lines))
実行結果
T:\>scala lesson004.scala T:\lesson004.scala:19: error: missing arguments for method collect in trait Iterator follow this method with `_' if you want to treat it as a partially applied function val lines = input.getLines.collect ^ one error found
http://d.hatena.ne.jp/kencoba/20100329/1269836994
「2.8では使えない。」そうです。
lesson005.scala
import scala.io._ def toInt(in: String): Option[Int] = try { Some(Integer.parseInt(in.trim)) } catch { case e: NumberFormatException => None } def sum(in: Seq[String]) = { val ints = in.flatMap(s => toInt(s)) ints.foldLeft(0)((a, b) => a + b) } println("Enter some numbers and press ctr-Z") val input = Source.fromInputStream(System.in) val lines = input.getLines.toSeq println("Sum " + sum(lines))
実行結果
T:\>scala lesson005.scala Enter some numbers and press ctr-Z 1 2 3 4 5 ^Z Sum 15