この記事を読むのに必要な時間:およそ 0.5 分
お詫びと訂正(正誤表)
本書の以下の部分に誤りがありました。ここに訂正するとともに,ご迷惑をおかけしたことを深くお詫び申し上げます。
第2章 p.74:3つめのコードブロック1行目
誤 |
for (e <- List(1, 2, 3) yield {
|
正 |
for (e <- List(1, 2, 3)) yield {
|
第2章 p.96:2つめのコードブロック1行目
誤 |
def sumString(list: List[String]): Double = list.foldLeft(""){
|
正 |
def sumString(list: List[String]): String = list.foldLeft(""){
|
第7章 P.228:下部コードブロック7行目
誤 |
Mockito.mock(classOf[UserRepository])
|
正 |
Mockito.mock(classOf[SpreadsheetReader])
|
第2章 P.71:上部のコードブロック2行目
誤 |
num: Int = 50
|
正 |
num: Int = 40
|
第2章 P.74:上部のコードブロック全体
正 |
scala> for (x <- 1 to 3; y <- 1 until 3 if x != y) {
| println("x = " + x + " y = " + y)
| }
x = 1 y = 2
x = 2 y = 1
x = 3 y = 1
x = 3 y = 2
|
第2章 P.97:上部のコードブロック全体
誤 |
scala> def sum[T](list: List[T])(adder: Adder[T]): T = {
| list.foldLeft(adder.zero){(x, y) => adder.plus(x,y)
| }
|
正 |
scala> def sum[T](list: List[T])(adder: Adder[T]): T = {
| list.foldLeft(adder.zero){(x, y) => adder.plus(x,y)}
| }
|
第2章 P.98 上部のコードブロック2行目(IntAdderの実装)
第4章 P.131 図4-5「takeなどで要素を取り出す」
正 |
|
第4章 P.132 図4-6「dropなどで要素を捨てる」
正 |
|
第5章 P.159 コードブロックの先頭
正 |
コードブロックの先頭に以下の行を追加
var i = 0
|
第7章 P.218 コードブロック全体
正 |
import scala.collection.mutable
trait ConfigManager {
val envPrefix: String
val config: mutable.Map[String, String]
def readConfig(key: String): Option[String] =
config.get(s"$envPrefix.$key")
def upsertConfig(key: String, value: String): Unit =
config.update(s"$envPrefix.$key", value)
def numOfConfig(): Int = config.size
def clearAll(): Unit = config.clear()
}
|
第8章 P.252 下部コードブロック1行目
誤 |
def if__[A](condition: Boolean)(thenClause: => A)(elseClause: => A): A
|
正 |
def if__[A](condition: Boolean)(thenClause: => A)(elseClause: => A): A = {
|
第8章 P.254 2つめのコードブロック4行目
第8章 P.255 コードブロック4行目
第8章 P.256 上部コードブロック8行目
第8章 P.258 上部コードブロック2行目
誤 |
val println(any.asInstanceOf[String].substring(1))
|
正 |
println(any.asInstanceOf[String].substring(1))
|
第2章 p.64:上部のコードブロック全体(Shopクラスの実装)
正 |
class Staff(val name: String, val age: Int)
class Shop(val name: String) extends AnyRef with Enumerable[Staff] with
Namable {
private[this] val staffs: List[Staff] = List(new Staff("太郎", 18), new
Staff("花子", 20))
// foreachの実装を提供する
override def foreach[B](f: Staff => B): Unit = staffs.foreach(f)
...
}
(以下省略)
|
第4章 p.127:上部のコードブロック1行目および5行目のコメント
正 |
// immutableSeqは不変なSeq
scala> val immutableSeq = scala.collection.immutable.Seq(1, 2, 3)
immutableSeq: scala.collection.immutable.Seq[Int] = List(1, 2, 3)
// mutableSeqは可変なSeq
scala> val mutableSeq = scala.collection.mutable.Seq(1, 2, 3)
mutableSeq: scala.collection.mutable.Seq[Int] = ArrayBuffer(1, 2, 3)
|
第6章 p.187:コードブロック4行目
誤 |
version := "0.1.0-SNAPSHOT",
|
正 |
|
(以下2018年10月31日更新)
第2章 P.62 コードブロック7行目(mapメソッドの実装)
誤 |
var members = Buffer.empty[A]
|
正 |
var members = Buffer.empty[B]
|
第4章 P.137 図4-12左上の数字(畳み込みの最後の値)