by shigemk2

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

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

fancs.connpass.com

どこまでいったの。

P52-P69 4.3.2のところまで

今回のポイント。

3. リスト

  • Listの関数はいっぱいある
  • 汎用的な関数を利用して関数に基づいて演算やアルゴリズムを表現できる
  • が、結果として得られる実装が必ずしも効率的ではない(短絡ロジックを実装しないと計算量がめんどうなことになる)
  • Listは代数的データ型と呼ばれるものの1つ。
  • 単方向リストは、ポインタの関係で、右方向にしか参照できないリスト。反対は双方向リスト。

4. 例外

  • 部分関数(一部の入力に対して定義されない関数)
  • 例外で参照等価性は失われてしまう
  • 参照透過な式は参照先の式と置き換えることが可能で、この置き換えによって意味が失われないことを意味する
  • 例外は型安全ではない

  • 例外を使わない方法はあるけどあまりスマートではない。

  • でも例外を使うとエラー処理のロジックを一本化できるという利点がある。
  • で、Option型を使うほうがスマート。
  • Option型は、通常処理はSome ダメ処理はNoneを返す。
  • セマンティック値は、エラー処理のときのための値。

予習。

www.shigemk2.com

書籍

Scala関数型デザイン&プログラミング ―Scalazコントリビューターによる関数型徹底ガイド (impress top gear)

Scala関数型デザイン&プログラミング ―Scalazコントリビューターによる関数型徹底ガイド (impress top gear)