by shigemk2

当面は技術的なことしか書かない

Scala関数型デザイン&プログラミング読書会@渋谷 まとめ #functional_shibuya

fancs.connpass.com

www.shigemk2.com

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