P69 4.3.2 - P84 5.2 遅延リストの例 まで。
4. 例外
- Option型だとどんなエラーが出るか分からない
- Either型だとRightでおーけー、LeftでNGという感じ。
- 例外は本当に本当につかわないといけないときだけつかう。
5. 正格と遅延
- 正格 引数をすべて評価すること。
- 非正格 引数をすべて評価しない。 遅延性とも言われる。
scala> def maybeTwice2(b: Boolean, i: => Int) = { | val j = i | if(b) j+j else 0 | } maybeTwice2: (b: Boolean, i: => Int)Int scala> val x = maybeTwice2(true, { println("hi"); 1+41 } ) hi x: Int = 84 scala> val x = maybeTwice2(false, { println("hi"); 1+41 }) hi x: Int = 0